您好,欢迎访问一九零五行业门户网

Velocity实例教程分享

1. velocity 是什么?
velocity 是一个基于java的模版引擎,它提供模版语言用于引用java代码定义的对象。
2. velocity 能做什么?velocity能创建html页面,并预留占位符。(最基本用途)
velocity能基于模板生成java,sql源代码。(没见过)
自动生成电子邮件。(没见过)
读取xml,并转换成需要的文档格式,通常是html。(没见过)
3. velocity示例velocity 注解单行 ##
多行 #*    *#
代码块注释(信息) ##*    *#
velocity 变量定义:
#set( $foo = "velocity" )
使用:
$foo ${foo}
velocity 集合#set( $greatlakes = ["superior","michigan","huron","erie","ontario"] )
velocity 条件判断#if( $foo < 10 ) <strong>go north</strong> #elseif( $foo == 10 ) <strong>go east</strong> #else <strong>go west</strong> #end
velocity 循环#foreach( $customer in $customerlist ) #if( $foreach.count > 5 ) #break #end $customer.name #end
velocity 引用文件#include( "one.vm" ) one.vm 不解析。 #parse( "me.vm" ) me.vm 解析。
velocity 定义代码块#define( $block ) hello $who #end #set( $who = 'world!' ) $block
velocity 宏调用无参
#macro( d ) <tr><td></td></tr> #end #d()
单参
#macro( d ) <tr><td>$!bodycontent</td></tr> #end #@d()hello#end
任意参数
定义
#macro( tablerows $color $somelist ) #foreach( $something in $somelist ) <tr><td bgcolor=$color>$something</td></tr> #end #end
调用
#set( $greatlakes = ["superior","michigan","huron","erie","ontario"] ) #set( $color = "blue" ) <table> #tablerows( $color $greatlakes ) </table>
输出
<table><tr><td bgcolor="blue">superior</td></tr><tr><td bgcolor="blue">michigan</td></tr><tr><td bgcolor="blue">huron</td></tr><tr><td bgcolor="blue">erie</td></tr><tr><td bgcolor="blue">ontario</td></tr></table>
velocity 填坑1. 各种写法
$foo ## is the same as ${foo} $foo.getbar() ## is the same as $foo.bar$data.setuser("jon") ## is the same as #set( $data.user = "jon" ) $data.getrequest().getservername() ## is the same as $data.request.servername## is the same as ${data.request.servername}
2. velocity 变量未定义
使用 $!,例
$!foo
当 foo 未定义,输出空白字符串。
3. velocity 调用顺序
velocity中$customer.address,调用顺序:
getaddress()getaddress()get("address")isaddress()
4. #if ($foo)
两种情况都返回true:
(1)$foo是一个 boolean 类型,且为 true。
(2)$foo不是 0,也不是 null。
5. #if ($foo == $bar)
因为velocity变量最终都作为字符串输出,所以velocity会自动调用 .tostring() 将变量转换成字符串。
所以,$foo 和 $bar 都当成字符串进行比较。即使java代码中类型不同,也有可能返回true。
velocity 严格模式velocity 1.6引入严格引用模式,通过设置velocity配置属性“runtime.references.strict”为true激活。
当遇到没有定义或者存在歧义的情况velocity将抛出异常。
希望这篇文章对你有帮助。by iamtjcn
以上就是 velocity实例教程分享的详细内容。
其它类似信息

推荐信息