Velocity语法

1.注释:htm

单行注释的前导符为“##”;对象

对于多行注释,则采用“#*”和“*#”符号。ci

2.引用:字符串

在Velocity中,有3种类型的引用:变量、属性和方法。get

  • 变量引用:

变量引用的简略标记为一个前导“$”后跟一个VTL标识符。VTL标识符可由字母、数字、中划线和下划线组成。数学

给引用变量赋值有两种方法:Java代码中给变量赋值和在模板中经过#set指令给变量赋值。#set( $foo = "bar") it

  • 属性引用

属性引用的简略标记为一个前导"$"后跟一个VTL标识符,后面再跟一个点号("."),最后跟一个VTL标识符。如$client.phone。ast

  • 方法引用

方法在Java代码中定义,VTL中方法引用的简略标记为前导符"$"后跟一个VTL标识符,再跟一个点号".",最后跟方法体。如$customer.getAddress()。模板

  • 正式引用符

如${client}格式。Jack is a ${vice}maniac。正式引用符经常使用在引用变量和普通文本直接临近的地方。email

  • 安静引用符

当Velocity遇到一个未赋值的引用时,会直接输出这个引用的名字。实际中遇到这种状况咱们但愿显示空白域。此时使用安静引用符就能够达到目的。安静引用符的前导字符为"$!",如$!{email}。

  • 转义符

VTL中的"$"具备特殊的含义。若是但愿把"$"做为普通的字符来处理,应该采用"\$"形式,其中"\"为转义符。

例如$set ($email = "foo")

$email

\$email

\\$email

\\\$email

以上代码的输出结果为:

foo

$email

\foo

\$email

3.指令:

  • #set指令

#set( $primate = "monkey")

#set( $people.say = ["yes","no",$primate])

  • 字面字符串

当使用#set指令时,在双引号中的字面字符串将被解析。

当字面字符串被包括在单引号中时,将不被解析。例如:

#set ( $foo = "bar")

$foo

#set ( $blargh = '$foo')

$blargh

以上代码的输出结果为:

bar

$foo

  • #if指令

#if( $foo)

    <strong>Velocity!</strong>

#end

当$foo是一个逻辑类型变量而且值为true或$foo的值非空时,if条件为真。

当$foo是一个逻辑类型变量而且值为false或$foo的值为null时,if条件为假。

在#if语句中还能够包含#elseif和#else项,而且Velocity引擎将在遇到第一个为真的表达式时中止逻辑判断。

  • 比较运算

在if条件表达式中,Velocity支持3种变量类型的比较运算:字符串比较、对象比较和整数比较。

字符串比较:字符串比较使用操做符"=="来决定两个字符串的内容是否相同。

对象比较:对象比较使用操做符"=="。只有当等号两边的引用变量引用同一个对象时,比较结果才为true。

整数比较:Velocity目前只支持整数类型数据的比较。#if( $a==10), #if( $a>10), #if( $a<10)。

  • #foreach循环指令

#foreach($client in $clientList)

    <tr><td>$client.firstname</td><td>$client.lastname</td><td>$client.phone</td></tr>

#end

  • #include指令

#include指令用来导入本地文件,这些文件将被插入到模板中#include指令被定义的地方。#include("head.htm",$page,"footer.htm")。

  • #parse指令
  • #macro指令
  • 转义VTL指令
  • VTL的格式

4.其余特征:

  • 数学运算
  • 范围操做符
  • 字符串的链接
相关文章
相关标签/搜索