$velocityCount和Tool的使用

来源:互联网 发布:淘宝劲舞团徽章 编辑:程序博客网 时间:2024/05/16 08:07
板语言大家都熟悉,$var,#method(),#marco,#foreach,#if #elseif #end,#parse,#set都是常用的命令了。只要知晓这几个用法,也就可以算是脸熟了。 

结合我自己使用Velocity的应用,我觉得还有一些几个经验很值得和大家分享: 

    $velocityCount的应用 
    Tool的应用 
    layout的应用 


1、$velocityCount 

这个变量在velocity属性文件中定义,在#foreach的时候可以用得上,比如我foreach一个List<User>时,我们可以使用$velocityCount判断完成形如“张三,李四”的输出(李四后面没有逗号) 

Java代码  收藏代码
  1. #foreach($user in $users)  
  2.     #userNode($user)#if($velocityCount != $user.size()),#end   
  3. #end  


或 

Java代码  收藏代码
  1. #foreach($user in $users)  
  2.     #if($velocityCount != 1),#end #userNode($user)  
  3. #end  



默认$velocityCount 从1开始。 

2、Tool的应用 

Tool在Velocity中便是一个可以在模板中全局使用的对象。常用的有$errors, $date, $text 
$errors: 用于读取在request中保存的错误提示信息(如密码错了等等),可这样用: 
Java代码  收藏代码
  1. #foreach ($e in $errors.all )  
  2.             <li>$e</li>  
  3.         #end  


$date:用于格式化时间类型,e.g: 
Java代码  收藏代码
  1. $date.format('yyyy-MM-dd', $post.lastModified)  


$text 用于读取配置在属性文件中在国际化信息, e.g. 
Java代码  收藏代码
  1. $text.get("inbox")  

便是读取ApplicationResources_zh_CN.properties文件中"inbox=收件箱"这个设置(plus广告:编辑属性文件时,需要unicode保存文件内容,这对中文很不方便,自从有了propedit插件,他自动完成这个转化,使用起来节省不少工作量,1片顶5片,值! ) 

Velocit的Tool都是普通的Java类,不用继承或实现基础类或接口,任何一个Java类,只要有默认构造器,都可以配置在velocity toolbox.xml中便可在模板中使用,配置的基本样式如下: 

Java代码  收藏代码
  1. <!--   
  2.     http://velocity.apache.org/tools/releases/1.3/generic/:   
  3.     Example of formatting the "current" date:  
  4.     $date                         -> Oct 192003 9:54:50 PM  
  5.     $date.long                    -> October 192003 9:54:50 PM PDT  
  6.     $date.medium_time             -> 9:54:50 PM  
  7.     $date.full_date               -> Sunday, October 192003  
  8.     $date.get('default','short')  -> Oct 192003 9:54 PM  
  9.     $date.get('yyyy-M-d H:m:s')   -> 2003-10-19 21:54:50  
  10.       
  11.     Example of formatting an arbitrary date:  
  12.     $myDate                        -> Tue Oct 07 03:14:50 PDT 2003  
  13.     $date.format('medium',$myDate) -> Oct 72003 3:14:50 AM  
  14.       
  15. -->  
  16. <tool>  
  17.     <key>date</key>  
  18.     <scope>application</scope>  
  19.     <class>org.apache.velocity.tools.generic.DateTool</class>  
  20.     <parameter name="format" value="yyyy-MM-dd" />  
  21. </tool>  


更多的常用Tool可以在Velocity网站上直接查看他们的使用说明:http://velocity.apache.org/tools/releases/1.3/generic/ 


当然对于特殊于自己项目中经常用到的一些“工具变量”,也可以把它配置到toolbox中。 
原创粉丝点击