Velocity是一个机遇java语言的模板引擎,支持任何人使用模板语言引用java代码定义的对象。
一、基本语法
https://velocity.apache.org/engine/devel/user-guide.html
1. #标识velocity脚本语言
包含#set、#if、#else、#end、#foreach、#end、#include、#parse、#marco等
eg:
#if($info.imgs)
<img src="$info.imgs" border=0>
#else
<img src="noPhoto.jpg">
#end
2.$标识一个对象(变量)
eg:$i、$msg、$TagUtil.options(...)
等
3. {}标识velocity变量
eg:在页面中,页面中有一个$someonename
,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name
4. !把不存在的变量显示为空白
如当页面中包含$msg
,如果msg对象有值,将显示msg的值,如果不存在msg对象同,则在页面中将显示$msg
字符。这是我们不希望的,为了把不存在的变量或变量值为null的对象显示为空白,则只需要在变量名前加一个“!”号即可。
如:$!msg
5. 常见velocity模板脚本语句
1、$!obj
直接返回对象结果。
如:在html标签中显示java对象msg的值。<p>$!msg</p>
在html标签中显示经过HtmlUtil对象处理过后的msg对象的值
<p>$!HtmlUtil.doSomething($!msg)</p>
2、#if($!obj) #else #end
判断语句
如:在EasyJWeb各种开源应用中,我们经常看到的用于弹出提示信息msg的例子。
#if($msg)
<script>
alert('$!msg');
</script>
#end
上面的脚本表示当对象msg对象存在时,输出<script>
等后面的内容。
3、#foreach( $info in $list) $info.someList #end
循环读取集合list中的对象,并作相应的处理。
如:EasyJF开源论坛系统中论(0.3)坛首页显示热门主题的html界面模板脚本:
#foreach( $info in $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info