使用Velocity实现客户端和服务器端模板 - 编程入门网
出了一些例子:
清单 4. 变量类型的 VTL 引用
变量名必须从一个字母开始,因此 Velocity 很容易把变量名与模板中的货币符号分开(比如, $100 不可能是一个变量名)。合并操作中所有的变量都被转化成字符串,可能造成一些有趣的现象。看一看清单 4 中用红色显示的文本。合并后的输出如清单 5 所示: 清单 5. 合并后的模板中带有数字值的变量
因为 $numericBase 在合并操作中被转化成了字符串,因此不会执行算术操作。因为 VTL 专门用于模板操作而非通用的计算语言,所以只需要支持整数算术运算(尽管可以使用插件工具进行扩展)。下面的脚本说明了如何利用这种数学运算能力:
该模板合并后相应的输出为:
到目前我们处理的还只有标量。要创建包含多个元素的 ArrayList 变量,可以使用如下的语法:
您可以使用 $treeList.get(1) 列表中的第二个元素。 赋值以后, $treeList 就是一个基于 ArrayList 的变量(就像是标准 JDK 集合类中那样)。您可以直接使用符号 $treeList.get(n) 访问它的每个元素,其中的 n 是以 0 为基的 ArrayList 索引。比如,像 清单 6 种红色显示的一行所表明的那样, $treeList.get(1) 用于选择 ArrayList 中第二项,即 oak。这种调用 ArrayList 类方法的语法也可用于调用其他变量对象的方法。 使用Velocity实现客户端和服务器端模板(3)时间:2011-06-27 IBM Sing Li属性和方法参考 除了在模板中设置变量之外,VTL 引用也可以是对象属性或方法。这些对象是模板可以使用的 Java 类。 对象属性通过和 Javabean 类似的符号访问。比如,可以通过 VTL 引用 $customer.LastName 访问 $customer 对象的 LastName 属性。在幕后,Velocity 使用对象的访问器方法获得属性值(即调用对象的 getLastName() 方法)。 您可以用和属性访问类似的符号调用对象的方法,可以带参数列表也可以不带。比如,可以通过 VTL 引用 $customer.getPhone("mobile") ,调用 $customer 对象的 getPhone() 方法获得移动电话号码。 关于占位符替换的一点说明:Velocity 把任何不能识别的引用作为普通文本打印,如清单 6 中下面突出显示的两行(蓝色和红色)所示: 清单 6. 占位符置换
VTL 支持一种静态引用符号,以避免呈现不存在的或者 空的 引用。如果使用安静引用符号,比如 $!notDeclared ,那么 Velocity 将什么也不输出,而不是输出完整的引用名。注意变量名前面的“!”表示这是静态引用符号。当合并清单 6 中的模板时,两个引用都没有分配任何值,但是蓝色显示的引用将原样显示,而绿色的一个则看不到:
选择性呈现和循环 可以使用指示符 #if... #then... #else.... 有条件地呈现模板中特定的部分。清单 7 给出了一个例子: 清单 7. 使用 #if、#the |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |