还剩4页未读,继续阅读
文本内容:
代码生成框架VelocityVelocity是一个基于Java的模板引擎,用户可以运用模板语言VTL来引用由Java代码定义的对象Velocity通常可以作为动态生成页面而广泛运用,还是一种功能强大的代码生成工具Velocity模板类似于JSP文件,当客户端发送请求后,Velocity引擎江依据模板产生动态地页面假如要运用Velocity生成动态页面,须要扩展VelocityServlet类来实现请求的处理,并通过handleRequest方法返回一个模板变量,Velocity会负责模板到页面的转换它还可以从模板产生SQL脚本、XML与Java代码等1模板文件扩展名为“.vni”,是一个文本文件2Java程序可以为VelocityServlet的子类例1helloworld,vmJava代码
1.##test assign
2.#set$name=〃gan.shu.man
3.Employee name:$gan.shu.man
4.##test condition
6.#if$name〃gan.shu.man
7.$name:very good!!
8.#else
9.$name:sorry!!
10.#end
11.Product information
12.##test circular
13.#foreach$product in$productList
14.$product.Name$$product.Price
15.#end
16.##test programassign
17.Total Price:$$totalPrice2HelloWorldVTL.javaJava代码
1.import java.io.StringWriter;
2.import java.io.Writer;
3.import java.util.ArrayList;
4.import java.util.Collection;
5.import java.util.Iterator;
7.import org.apache,velocity.Template;
8.import org.apache,velocity.VelocityContext;
9.import org.apache,velocity,app.Velocity;
10.public classHelloWorldVTL{
11.public staticvoid mainString[]args throwsException{
12.Velocity,init;
13.Template template=Velocity.getTemplate/z./src/helloworld.vm〃;
14.VelocityContext ctx=new VelocityContext;
15.Collection products=new ArrayList;
16.products,add newProductProduct1〃,
12.99;
17.products,add newProductProduct2〃,
13.99;
18.products,add newProductProduct3〃,11・99;
19.ctx.put〃productList〃,products;
20.Iterator itr=products,iterator;
21.double total=
0.00;
22.while itr.hasNext{
23.Product p=Product itr.next;
24.total+=p.getPrice;
25.
26.ctx.put z,totalPrice/z,new Doubletotal;
27.Writer writer=new StringWriter;
28.template,merge ctx,writer;
29.System,out.printin writer-toStringO;
30.}
31.Java代码☆c
1.public class1Product{
2.private String name;
3.private double price;
4.public ProductStringname,doubleprice{
6.this,name=name;3Product,java
7.this,price=price;
8.
9.public StringgetName{
10.return name;
11.
13.this,name name;
12.public voidsetNameString name
14.
15.public doublegetPrice{
16.return price;
17.}
18.public voidsetPrice doubleprice
19.this,price=price;
20.}
21.输出2008-3-102:45:12org.apache,velocity,runtime,log.JdkLogChute log信息、FileResourceLoader:adding path2008-3-102:45:12org.apache,velocity,runtime,log.JdkLogChute log信,息:Null reference[template,/src/helloworld.vm,,line3,column16$gan.shu.man cannotbe resolved.Employee name:$gan.shu.mangan.shu.man:very good!!Product informationProduct1$
12.99Product3$
11.99Total Price:$
38.973)处理流程运用Velocity生成过程如下
(1)初始化模板引擎;
(2)加载模板文件;
(3)创建模板上下文;
(4)给模板变量赋值;
(5)替换模板中的值生成代码通过模板生成代码是比较好的选择,模板在某种意义上来说就是配置文件的一种,当生成文件内容修改后,用户不须要修改源程序,只须要修改模板文件即可,提高了代码的可维护性。
个人认证
优秀文档
获得点赞 0