• Velocity学习


    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11790482.html

    Velocity学习:

    1. velocity对大小写敏感
    
    2. velocity的具体用法:
        
        import org.apache.velocity.Template;
        import org.apache.velocity.VelocityContext;
        import org.apache.velocity.app.VelocityEngine;
        import org.apache.velocity.runtime.RuntimeConstants;
        import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
    
        /**
         * 初始化Velocity引擎
         */
        VelocityEngine ve = new VelocityEngine();
        ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); 
        ve.init();
    
        /**
         * 获取模板,参数栏填写模板所在路径
         */
        Template t = ve.getTemplate("ureport-html/html-preview.html");
    
        /**
         * 创建Velocity上下文
         */
        VelocityContext vctx = new VelocityContext();
        /**
         * 放入数据
         */
        vctx.put("data", "data");
        vctx.put("html", "htmldata");
    
        /**
         * 创建一个任意形式的wirter,用于输出页面数据
         * 假设前面有response传入
         */
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");
        //Writer writer = new Writer(); //可以new一个Writer, 也可以从response中获取,设置输出的信息
        PrintWriter writer = response.getWriter();
    
        /**
         * 交给模板去处理
         */
        t.merge(vctx, writer)
    
        writer.close();
    
    3. 语法
    
        #set( $foo = "Velocity" ) 设置变量的值
    
        ## 单行注释
    
        #*  随便什么内容     *# 多行注释
    
        $user 引用Java中定义的对象
    
        $user.name 引用user对象的属性
    
        $user.setName("fw"); 方法引用
    
        $user.getName(); 这个和$user.name 效果是一样的
    
        如果有一个对象是引用的Java数组,那还可以直接调用Java数组的方法:
    
            $myarray.isEmpty()
            $myarray.size()
            $myarray.get(2)
            $myarray.set(1, 'test')
    
        ${userName} 这种写法也支持
    
        $!userName 如果userName是空值, 那么就显示""空字符串
    
        ${!userName} ${}是正式引用; !是静态引用
    
        不解析模式:下面的代码将会输出 #[[ ]]#中的内容;
        #[[
            #foreach ($item in $itemList)
              nothing will happen to $item
            #end
        ]]#
    
        判断语句 If / ElseIf / Else  && || ! 
     
        #if ()
            //do something
        #elseif ()
            //do something
        #elseif ()
            //do something
        #else 
            //do something
        #end
    
        循环 foreach
    
        #foreach ($name in $users)
            $name
        #end
    
        #include( "one.png","two.txt","three.html" )
    
        #parse( "me.vm" )
  • 相关阅读:
    我工作三年了,该懂并发了!
    代理,一文入魂
    非典型算法题,用程序和电脑玩一个游戏
    详解command设计模式,解耦操作和回滚
    matplotlib画图教程,设置坐标轴标签和间距
    详解工程师不可不会的LRU缓存淘汰算法
    详解深度学习感知机原理
    详解gitignore的使用方法,让你尽情使用git add .
    算法题 | 你追我,如果你追到我……那就算你赢了
    险些翻车,差一点没做出来的基础算法题
  • 原文地址:https://www.cnblogs.com/fanerwei222/p/11790482.html
Copyright © 2020-2023  润新知