velocity的简介_burpee的博客-CSDN博客

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当 作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

Java代码   收藏代码

  1. package com.velocity.demo;  
  2. import java.io.StringWriter;  
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.Map;  
  6. import java.util.Properties;  
  7. import org.apache.velocity.Template;  
  8. import org.apache.velocity.VelocityContext;  
  9. import org.apache.velocity.app.Velocity;  
  10. import org.apache.velocity.app.VelocityEngine;  
  11. import org.apache.velocity.exception.ParseErrorException;  
  12. import org.apache.velocity.exception.ResourceNotFoundException;  
  13. public class PromotedVelocityDemo  
  14. {  
  15.     public static void main(String[] args) throws Exception, ParseErrorException, Exception  
  16.     {  
  17.         VelocityEngine ve = getVelocityEngine();  
  18.         VelocityContext context = getVelocityContext();  
  19.         Template template = ve.getTemplate("com/velocity/demo/promotedTemple");  
  20.         if(template != null){  
  21.             StringWriter getWriter = new StringWriter();  
  22.             template.merge(context, getWriter);  
  23.             System.out.println(getWriter);  
  24.         }  
  25.     }   
  26.      public static ArrayList getNames() {    
  27.             ArrayList list = new ArrayList();    
  28.             list.add("刘少奇");    
  29.             list.add("李逵");    
  30.             list.add("王熙凤");    
  31.             list.add("李四光");    
  32.             return list;    
  33.         }    
  34.     public static ArrayList getNamesMap() {     
  35.         ArrayList list = new ArrayList();    
  36.         Map map = new HashMap();        
  37.         map.put("name", "书包");    
  38.         map.put("price", "$100.00");    
  39.         list.add( map );        
  40.         map = new HashMap();    
  41.         map.put("name", "唱片");    
  42.         map.put("price", "$59.99");    
  43.         list.add( map );        
  44.         map = new HashMap();    
  45.         map.put("name", "小菜");    
  46.         map.put("price", "$3.99");    
  47.         list.add( map );    
  48.         return list;    
  49.     }    
  50.     public static Map getUserInfo(){  
  51.         Map<String,String> para = new HashMap<String,String>();  
  52.         para.put("name", "dirk.zhang");  
  53.         para.put("age", "20");  
  54.         para.put("sex", "male");  
  55.         return para;  
  56.     }  
  57.     public static VelocityContext getVelocityContext(){  
  58.         VelocityContext context = new VelocityContext();  
  59.         context.put("list", getNames());  
  60.         context.put("listMap", getNamesMap());  
  61.         Map<String,String> para = getUserInfo();  
  62.         if(para.size() >0)  
  63.             for(String key : para.keySet())  
  64.                 context.put(key, para.get(key));  
  65.         return context;  
  66.     }  
  67.     public static VelocityEngine getVelocityEngine() throws Exception{  
  68.         VelocityEngine ve = new VelocityEngine();  
  69.         Properties properties = new Properties();  
  70.         String fileDir = Thread.currentThread().getContextClassLoader().getResource("").getPath();  
  71. //      ve.setProperty(Velocity.RESOURCE_LOADER, "class");  
  72. //      ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");  
  73.         properties.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH,fileDir);  
  74.         properties.setProperty(Velocity.ENCODING_DEFAULT, "utf-8");  
  75.         properties.setProperty(Velocity.INPUT_ENCODING, "utf-8");  
  76.         properties.setProperty(Velocity.OUTPUT_ENCODING, "utf-8");  
  77.         ve.init(properties);  
  78.         return ve;  
  79.     }  
  80. }  

 下面是模板文件:

Java代码   收藏代码

  1. 声明一个变量:this并且设置值为:Velocity    

  2. set( $this = "咫尺天涯")    

  3. 使用设置的变量值    

  4. 这里是$this的博客!    
  5. for打印集合信息数据    

  6. foreach( $name in $list )    

  7. 姓名:$name!    
  8. end    

  9. 声明一个布尔值    

  10. set( $condition = true)    

  11.  if else分支判断    

  12. if ($condition)    

  13. The condition is true!    
  14. else    

  15. The condition is false!    
  16. end    

  17. 姓名:$name,年龄:$age,性别:$sex    
  18. foreach( $p in $listMap )    

  19. 项目:$p.name,价格:$p.price;    
  20. end    

 velocity使用简单,一看便知,老少皆宜的好东东


原网址: 访问
创建于: 2021-05-20 20:42:06
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论