2024年3月21日发(作者:)
Velocity模板语言
Velocity是由Apache软件组织提供的一项开放源码项目,它是
一个基于Java的模板引擎。
网页制作者可以通过Velocity模板语言(Velocity Template
Language,VTL)定义模板(template),并且在模板中不包含任何
Java程序代码。Java开发人员编写程序代码来设置上下文,它包含了
用于填充模板的数据。Velocity引擎能够把模板和上下文合并起来,
生成动态网页。
VTL模板和JSP网页的区别在于:在VTL模板中不包含任何Java
代码,并且VTL模板不同经过JSP编译器的编译,VTL模板的解释是
由Velocity引擎来完成的。
尽管Velocity也可用于其它独立应用程序的开发,但其主要用途
是简化Web应用开发。Velocity将Java代码从Web页面中分离出
来,使Web站点在长时间运行后仍然具有很好的可维护性。
创建基于Velocity的Web应用包括两个步骤:
(1)创建Velocity模板;
(2)创建扩展VelocityServlet的Servlet类。
在Velocity模板语言中,"$"符号表示跟随其后的字符串为变量。
如果要把"$"符号作为普通字符串处理,应该采用"$"的形式。
VelocityServlet类,它是HttpServlet类的子类。它由两个重要
方法:loadConfiguration方法handleRequest方法。
loadConfiguration方法类似于HttpServlet类的Init方法,区别
在于loadConfiguration方法返回ties对象。
handleRequest方法类似于HttpServlet类的doGet和doPost
方法,区别在于handleRequest方法中增加了一个
t类型的参数,Context类用来
存放所有用于显示到HTML页面上的数据。
例子:
第一步,创建一个文件名为的简单的模板文件,它的内
容如下:$hello
第二步,创建扩展了VelocityServlet的HelloServlet类。
在它的loadConfiguration方法中把模板所在的文件路
径及Velocity日志文件路径作为属性存放在Properties对象中,然后
返回Properties对象;
在handleRequest方法中把变量hello对应的数据存放在context
对象中,handleRequest方法接下来获得模板,然后返回代
表模板的Template对象。
注释:
在VTL中,单行注释的前导符为"##",对于多行注释,则采用
"#*"和"*#"符号。
引用:在VTL中有3中类型的引用:变量、属性和方法。
变量引用:
变量引用的简略标记是由一个前导"$"字符后跟一个VTL标识符组
成的。一个VTL标识符必须以一个字母开始,剩下的字符将由以下类
型的字符组成:字母,数字,连字符,下划线。
给引用变量赋值有两种方法,一种办法是在Java代码中给变量赋
值,此外,也可以在模板中通过#set指令给变量赋值,例如
#set($foo="bar") the output is $foo.
属性引用:


发布评论