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)
<未完>