Velocity字符串模板替换

Java代码   收藏代码
  1. public class VelocityTest {  
  2.   
  3.     private static Properties props = new Properties();  
  4.   
  5.     static {  
  6.         props.setProperty(Velocity.INPUT_ENCODING, "UTF-8");  
  7.         props.setProperty(Velocity.RESOURCE_LOADER, "class");  
  8.         props.setProperty("class.resource.loader.class",  
  9.                 "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");  
  10.     }  
  11.   
  12.     public static void main(String[] args) {  
  13.         testStringVelocity();  
  14.         testCommonsStringUtils();  
  15.     }  
  16.   
  17.     /** 
  18.      * 测试字符串模板替换 
  19.      */  
  20.     private static void testStringVelocity() {  
  21.         // 初始化并取得Velocity引擎  
  22.         VelocityEngine engine = new VelocityEngine(props);  
  23.         // 字符串模版  
  24.         String template = "${owner}:您的${type} : ${bill} 在  ${date} 日已支付成功";  
  25.         // 取得velocity的上下文context  
  26.         VelocityContext context = new VelocityContext();  
  27.         // 把数据填入上下文  
  28.         context.put("owner""nassir");  
  29.         context.put("bill""201203221000029763");  
  30.         context.put("type""订单");  
  31.         context.put("date",  
  32.                 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));  
  33.         StringWriter writer = new StringWriter();  
  34.         engine.evaluate(context, writer, "", template);  
  35.         System.out.println(writer.toString());  
  36.           
  37.     }  
  38.   
  39.     /** 
  40.      * 测试模板静态方法使用 
  41.      */  
  42.     private static void testCommonsStringUtils() {  
  43.         VelocityEngine engine = new VelocityEngine();  
  44.         engine.init();  
  45.         VelocityContext ctx = new VelocityContext();  
  46.         ctx.put("stringUtils"new StringUtils());  
  47.         ctx.put("comments""this is a \n newline test");  
  48.         ctx.put("newline""\n");  
  49.         ctx.put("break""<br/>");  
  50.         String template = "#set($comments = $stringUtils.replace($comments,$newline,$break))";  
  51.         template += "$comments";  
  52.         StringWriter writer = new StringWriter();  
  53.         engine.evaluate(ctx, writer, "", template);  
  54.         System.out.println(writer.toString());  
  55.         // assertEquals("this is a <br /> newline test", writer.toString());  
  56.     }  
  57. }  
 

 

运行结果:

 

nassir:您的订单 : 201203221000029763 在  2012-03-26 18:13:01 日已支付成功

this is a 

 newline test

你可能感兴趣的:(java,String,velocity)