zoukankan      html  css  js  c++  java
  • velocity使用知识总结

    1.后台传递List<bean> ,前台循环获取

    List<Lead> leads = leadService.getAllLeadLists();
    mv.addObject("lists", leads);
    #foreach ($leads in $lists) 
                            <li><input type="checkbox" name="leadListId" value="$leads.id">$leads.name</li>
    #end

    注意:#foreach和#end是成对出现的;获取bean的属性,$bean.property,如后台传值UserBean ,获取name即为$UserBean.name

    2.if else 判断语句

    #if($task.status == 1) New
    #elseif($task.status == 2) Ready
    #elseif($task.status == 3) Proccessing
    #elseif($task.status == 4) Finished
    #end

    注意:#if判断完之后,要以#end结尾

    3.velocity 分页:在href中页码不能直接+1 -1

    #set($pagePre=$page.pageNum - 1)     ##必须在这里先做减法运算后将值赋给变量,如果下面直接pageNum=$pageNum - 1,如果pageNum为1,输出的1 - 1 ,另外 运算符两边空格勿忘! 
    #set($pageNext=$page.pageNum + 1) ##如果运算符两边没有空格,会出错

    4.在struts中,一般html页面元素里面的name需要加上bean,如name='user.age' ,在velocity中,自动封装bean , name属性不能加bean

    5.velocity引入文件的两个指令:来源(http://www.cnblogs.com/yuepeng/archive/2010/11/23/1885622.html)

    #Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT。这两者之间有一些区别。

    #Include

    被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板。使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量。如果有多个文件,以逗号隔开即可。比如#Include("a.gif", "b.html", $file)。

    #Parse

    #Parse用来在当前模板中引入并执行另一个(本地的)模板——可以是静态的,也可以是动态的——并把结果嵌入到当前位置。#Parse()指令的参数,可以是一个双引号括起来的文件名,也可以是一个变量,但是它不能接受多个参数

    假如a.vm #Parse b.vm,那么a.vm中定义的变量$v,在b.vm中可以随便使用。如果b.vm也定义了$v,那么b.vm中用到的将会是自己的$v,而不是a.vm中的$v。

    被#Parse引入的文件仍然可以使用#Parse指令 可以嵌套执行。

    6.velocity在页面实现时间格式化,需要使用tools

    在springMvc+velocity环境下 ,配置如下:

    (1)在web-inf目录下,创建toolbox.xml文件,里面包含引入tools的配置(以时间为例)

    <?xml version="1.0" encoding="UTF-8"?>
    <toolbox>
    <tool>
       <key>date</key>
       <scope>application</scope>
       <class>org.apache.velocity.tools.generic.DateTool</class>
       <parameter name="format" value="yyyy-MM-dd HH:mm:ss"/> 
    </tool>
    </toolbox> 

    (2)在dispatcher-servlet.xml文件中修改视图解析的配置:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
              <property name="exposeSpringMacroHelpers" value="true"/> 
              <property name="cache" value="true"/>
            <property name="prefix" value=""/>
            <property name="suffix" value=".vm"></property>
            <!--add for tool -->
            <property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml" />
    </bean>

    (3)在页面上面使用即可 $!date.format($task.createdDate)

    注意:对于tool标签里面配置parameter  ,也可以不配置,在页面设置格式$!date.format('yyyy-MM-dd HH:mm:ss ',$task.createdDate)

    <未完>

  • 相关阅读:
    windows nginx
    stdClass 标准
    array_merge
    array_pop
    array_push
    array_unique
    GMT与UTC简介(转)
    curl-手册
    13.5. zipfile — Work with ZIP archives
    7. Input and Output
  • 原文地址:https://www.cnblogs.com/cuiyf/p/3526565.html
Copyright © 2011-2022 走看看