入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

velocity基础

创建时间:2010-11-09 投稿人: 浏览次数:2583

Velocity是什么?
Velocity 是一个基于 java 的模板引擎( template engine )。它允许简单的使用模板语言( template language )来引用由 java 代码定义的对象。

Velocity的eclipse插件
http://code.google.com/p/veloeclipse/

 

变量赋值
#set指令用来创建和更新变量值
#set( $foo = “text” )          String value
#set( $foo = 100 )         Numeric value
#set( $foo = [ 1, 2, 3 ] )      Array
#set( $foo = { 1 : 2, 3 : 4 } )      Map
#set( $foo = $bar )          Object Reference
#set( $foo = $bar.foo )          Bean Property
#set( $foo = $bar.doFoo() )   Method Result

 

循环
#foreach($foo in $foos) ... #end
默认从1开始
$velocityCount 引用循环计数
在velocity.properties中配置以下变量:
directive.foreach.counter.name = velocityCount   #计数变量名称
directive.foreach.counter.initial.value = 1   #从几开始计数

 

条件
#if() ... #elseif() ... #else ... #end

 

导入外部文件
#include() -- 被包含的文件不会被引擎render
#parse() -- 被包含的文件会被引擎render

注释
单行 ##
多行 #*  *#
文档格式  #**  *#


定义:#macro (name $arg1 $arg2) … #end
使用:#name($arg1 $arg2)
在velocity.properties中配置以下变量:
velocimacro.library指定逗号分隔的模板库

将一段代码赋给velocity变量
定义:#define($name) … #end
使用:$name

变量渲染
${formalReference}避免歧义,加入边界,如:${haha}abcd
$!ref or $!{ref} 为空不输出

velocity.properties属性配置文件

#break跳出循环

#continue??无此语句

不支持数组访问,可以使用工具类支持这个功能

转义符/

#stop停止执行模板引擎并返回

#evaluate动态评估表达式值
#set($source1 = "abc")
#set($select = "1")
#set($dynamicsource = "$source$select")
## $dynamicsource is now the string "$source1"
#evaluate($dynamicsource)值为"abc"

string连接:
$a$b
#set($str=$a+"-"+$b)

特殊性
1.赋值
#set ( $result = $query.criteria(“address”) )
#set ( $result = $query.criteria(“name”) )
如果$query.criteria(“address”) )返回"北京",$query.criteria(“name”)返回为null,则对$result还是原来的值"北京"

2.比较
#set($foo="10") $foo==10返回false
#set($foo=10) $foo==10返回true
说明:要求==两边值类型相同

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。