浏览 2612 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-03-15 关键字: web
模板语言大家都熟悉,$var,#method(),#marco,#foreach,#if #elseif #end,#parse,#set都是常用的命令了。只要知晓这几个用法,也就可以算是脸熟了。
结合我自己使用Velocity的应用,我觉得还有一些几个经验很值得和大家分享: $velocityCount的应用 Tool的应用 layout的应用 1、$velocityCount 这个变量在velocity属性文件中定义,在#foreach的时候可以用得上,比如我foreach一个List<User>时,我们可以使用$velocityCount判断完成形如“张三,李四”的输出(李四后面没有逗号) #foreach($user in $users)
#userNode($user)#if($velocityCount != $user.size()),#end
#end
或 #foreach($user in $users)
#if($velocityCount != 1),#end #userNode($user)
#end
默认$velocityCount 从1开始。 2、Tool的应用 Tool在Velocity中便是一个可以在模板中全局使用的对象。常用的有$errors, $date, $text $errors: 用于读取在request中保存的错误提示信息(如密码错了等等),可这样用: #foreach ($e in $errors.all )
<li>$e</li>
#end
$date:用于格式化时间类型,e.g: $date.format('yyyy-MM-dd', $post.lastModified)
$text 用于读取配置在属性文件中在国际化信息, e.g. $text.get("inbox")
便是读取ApplicationResources_zh_CN.properties文件中"inbox=收件箱"这个设置(plus广告:编辑属性文件时,需要unicode保存文件内容,这对中文很不方便,自从有了propedit插件,他自动完成这个转化,使用起来节省不少工作量,1片顶5片,值! Velocit的Tool都是普通的Java类,不用继承或实现基础类或接口,任何一个Java类,只要有默认构造器,都可以配置在velocity toolbox.xml中便可在模板中使用,配置的基本样式如下:
<!--
http://velocity.apache.org/tools/releases/1.3/generic/:
Example of formatting the "current" date:
$date -> Oct 19, 2003 9:54:50 PM
$date.long -> October 19, 2003 9:54:50 PM PDT
$date.medium_time -> 9:54:50 PM
$date.full_date -> Sunday, October 19, 2003
$date.get('default','short') -> Oct 19, 2003 9:54 PM
$date.get('yyyy-M-d H:m:s') -> 2003-10-19 21:54:50
Example of formatting an arbitrary date:
$myDate -> Tue Oct 07 03:14:50 PDT 2003
$date.format('medium',$myDate) -> Oct 7, 2003 3:14:50 AM
-->
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
<parameter name="format" value="yyyy-MM-dd" />
</tool>
更多的常用Tool可以在Velocity网站上直接查看他们的使用说明:http://velocity.apache.org/tools/releases/1.3/generic/ 当然对于特殊于自己项目中经常用到的一些“工具变量”,也可以把它配置到toolbox中。 ----- 本贴不是什么高深帖子,Velocity官方网站上都有,只是发现很多用velocity,但是都没用好这些功能,所以说说 ----- velocity还有一个特别好用的特点,那就是支持页面layout布局。 下个帖子阐述它的用法,偶回家了,88。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-03-15
这里貌似只有$velocityCount比较适用。很少用tools,更常用传递给context一个具备某种实用方法的实例,比如$StringHelper.trim($input, $maxLength)。现在才知道还可以这么配置一些tools,呵呵
期待你的layout讲解,:) |
|
| 返回顶楼 | |




