代码生成架构Velocity

上传人:鲁** 文档编号:507458940 上传时间:2023-11-18 格式:DOC 页数:3 大小:41KB
返回 下载 相关 举报
代码生成架构Velocity_第1页
第1页 / 共3页
代码生成架构Velocity_第2页
第2页 / 共3页
代码生成架构Velocity_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《代码生成架构Velocity》由会员分享,可在线阅读,更多相关《代码生成架构Velocity(3页珍藏版)》请在金锄头文库上搜索。

1、真诚为您提供优质参考资料,若有不当之处,请指正。代码生成框架VelocityVelocity是一个基于Java的模板引擎,用户可以使用模板语言VTL来引用由Java代码定义的对象。 Velocity通常可以作为动态生成页面而广泛使用,还是一种功能强大的代码生成工具。 Velocity模板类似于JSP文件,当客户端发送请求后,Velocity引擎江根据模板产生动态地页面。如果要使用Velocity生成动态页面,需要扩展VelocityServlet类来实现请求的处理,并通过handleRequest方法返回一个模板变量,Velocity会负责模板到页面的转换。 它还可以从模板产生SQL脚本、XM

2、L及Java代码等。 1)模板文件 扩展名为“.vm”,是一个文本文件。 2)Java程序 可以为VelocityServlet的子类。 例: (1)helloworld.vm Java代码1. #testassign 2. #set($name=gan.shu.man) 3. Employeename:$gan.shu.man 4. 5. #testcondition 6. #if($name=gan.shu.man) 7. $name:verygood! 8. #else9. $name:sorry! 10. #end 11. 12. Productinformation 13. #tes

3、tcircular 14. #foreach($productin$productList) 15. $product.Name$product.Price 16. #end 17. 18. #testprogramassign 19. TotalPrice:$totalPrice#test assign#set($name = gan.shu.man)Employee name: $gan.shu.man#test condition#if($name = gan.shu.man)$name: very good!#else$name: sorry!#endProduct informati

4、on#test circular#foreach($product in $productList)$product.Name $product.Price#end#test program assignTotal Price: $totalPrice(2)HelloWorldVTL.java Java代码 1. importjava.io.StringWriter; 2. importjava.io.Writer; 3. importjava.util.ArrayList; 4. importjava.util.Collection; 5. importjava.util.Iterator;

5、 6. 7. importorg.apache.velocity.Template; 8. importorg.apache.velocity.VelocityContext; 9. importorg.apache.velocity.app.Velocity; 10. publicclassHelloWorldVTL 11. publicstaticvoidmain(Stringargs)throwsException 12. Velocity.init(); 13. Templatetemplate=Velocity.getTemplate(./src/helloworld.vm); 14

6、. VelocityContextctx=newVelocityContext(); 15. Collectionproducts=newArrayList(); 16. products.add(newProduct(Product1,12.99); 17. products.add(newProduct(Product2,13.99); 18. products.add(newProduct(Product3,11.99); 19. ctx.put(productList,products); 20. Iteratoritr=products.iterator(); 21. doublet

7、otal=0.00; 22. while(itr.hasNext() 23. Productp=(Product)itr.next(); 24. total+=p.getPrice(); 25. 26. ctx.put(totalPrice,newDouble(total); 27. Writerwriter=newStringWriter(); 28. template.merge(ctx,writer); 29. System.out.println(writer.toString(); 30. 31. import java.io.StringWriter;import java.io.

8、Writer;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.apache.velocity.Template;import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity;public class HelloWorldVTL public static void main(String args) throws ExceptionVelocity.init

9、();Template template = Velocity.getTemplate(./src/helloworld.vm);VelocityContext ctx = new VelocityContext();Collection products = new ArrayList();products.add(new Product(Product 1,12.99);products.add(new Product(Product 2,13.99);products.add(new Product(Product 3,11.99);ctx.put(productList, produc

10、ts);Iterator itr = products.iterator();double total = 0.00;while(itr.hasNext()Product p = (Product)itr.next();total+=p.getPrice();ctx.put(totalPrice, new Double(total);Writer writer = new StringWriter();template.merge(ctx, writer);System.out.println(writer.toString();(3)Product.java Java代码 1. public

11、classProduct 2. privateStringname; 3. privatedoubleprice; 4. publicProduct(Stringname,doubleprice) 5. super(); 6. this.name=name; 7. this.price=price; 8. 9. publicStringgetName() 10. returnname; 11. 12. publicvoidsetName(Stringname) 13. this.name=name; 14. 15. publicdoublegetPrice() 16. returnprice;

12、 17. 18. publicvoidsetPrice(doubleprice) 19. this.price=price; 20. 21. public class Product private String name;private double price;public Product(String name, double price) super();this.name = name;this.price = price;public String getName() return name;public void setName(String name) this.name =

13、name;public double getPrice() return price;public void setPrice(double price) this.price = price;输出: 2008-3-10 2:45:12 org.apache.velocity.runtime.log.JdkLogChute log 信息: FileResourceLoader : adding path . 2008-3-10 2:45:12 org.apache.velocity.runtime.log.JdkLogChute log 信息: Null reference template ./src/helloworld.vm, line 3, column 16 : $gan.shu.man ca

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号