• velocity(vm)模板引擎 --学习笔记


    主要记录vm的配置及使用语法
     
    一、与Struts2的的集成
     在pom.xml文件配置
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version> 
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-tools</artifactId>
        <version>2.0</version>
    </dependency>
     
    二、定量显示变量
    2.1#开头---控制符号
    #set($变量名='xx')    定义变量
    2.2$开头---显示符号
    $变量名        显示变量
     
    三、遍历数组(数组:$list,索引变量:$velocityCount)
    #foreach($item in $list)
        $velocityCount.$item
    #end
    四、遍历HashTable
    #foreach($key in $table.keySet())
        $key -> $table.get($key)
    #end
    五、判断是否为空
    5.1判断单个对象$obj
    #if($(obj))        #if(!$(obj))
        不为空              不为空
    #else              #else
        为空                为空
    #end               #end  
    5.2判断集合$datalist,对象obj
    #if($null.isNull($datalist.obj) || $datalist.obj.size()==0)
        集合空
    #else
        #foreach($obj in $datalist.obj)
            #velocityCount:$obj.属性
        #end
    #end
    六、宏---定义一个宏相当于定义一个子函数
    #macro(宏名称-renderdata  $参数-datalist)
        对datalist里的obj进行操作代码...
    #end
    #renderdata($datalist.obj)
    七、数值、日期格式化
    7.1数值
    7.1.1数字
    $number.format('0.00',$obj.amounts)
    7.1.2货币格式
    $number.format("currency", $agentBillDto.feeTotal) 
    7.2日期
    7.2.1获取当前年月日
    $date.year 
    $date.month 
    $date.day
    7.2.2设置年月日格式
    $date.format('yyyy-MM-dd HH:mm:ss',$obj.createTime,$locale)
    $date.format('MMM,dd',$obj.createTime,$convert.toLocale("en_US"))
    7.3使用配置
    在struts.xml加入
    <constant name="struts.velocity.toolboxlocation" value="WEB-INF/classes/toolbox.xml" />
    八、include、parse实现布局模块化
    8.1语法  
    #parse("template/xxx.vm")
    #include("template/xxx.vm")
    8.2区别
      include只导入文件,不解析vm语法
      parse导入文件,也会解析vm语法(定义变量、定义宏...)
    8.3加载路径
      被包含的.vm文件放到/WEB-INF/classes目录下即可
      例子中xxx.vm放在/WEB-INF/classes/template下
     
     
     
     
     
     
  • 相关阅读:
    利用Python和webhook实现自动提交代码
    Python threading 单线程 timer重复调用函数
    Python requests 使用心得
    openresty实现接口签名安全认证
    使用jedis面临的非线程安全问题
    记一次线上升级openresty中kafka版本产生的多版本兼容问题
    mysql中走与不走索引的情况汇集(待全量实验)
    Elasticsearch深分页以及排序查询问题
    IO多路复用:Redis中经典的Reactor设计模式
    Netty在Dubbo中的使用过程源码分析
  • 原文地址:https://www.cnblogs.com/wy-QAQ/p/8664659.html
Copyright © 2020-2023  润新知