Velocity字符串模板替换

  • Post author:
  • Post category:其他
Java代码
收藏代码
  1. publicclassVelocityTest{
  2. privatestaticPropertiesprops=newProperties();
  3. static{
  4. props.setProperty(Velocity.INPUT_ENCODING,“UTF-8”);
  5. props.setProperty(Velocity.RESOURCE_LOADER,“class”);
  6. props.setProperty(“class.resource.loader.class”,
  7. “org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader”);
  8. }
  9. publicstaticvoidmain(String[]args){
  10. testStringVelocity();
  11. testCommonsStringUtils();
  12. }
  13. /**
  14. *测试字符串模板替换
  15. */
  16. privatestaticvoidtestStringVelocity(){
  17. //初始化并取得Velocity引擎
  18. VelocityEngineengine=newVelocityEngine(props);
  19. //字符串模版
  20. Stringtemplate=“${owner}:您的${type}:${bill}在${date}日已支付成功”;
  21. //取得velocity的上下文context
  22. VelocityContextcontext=newVelocityContext();
  23. //把数据填入上下文
  24. context.put(“owner”,“nassir”);
  25. context.put(“bill”,“201203221000029763”);
  26. context.put(“type”,“订单”);
  27. context.put(“date”,
  28. newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”).format(newDate()));
  29. StringWriterwriter=newStringWriter();
  30. engine.evaluate(context,writer,“”,template);
  31. System.out.println(writer.toString());
  32. }
  33. /**
  34. *测试模板静态方法使用
  35. */
  36. privatestaticvoidtestCommonsStringUtils(){
  37. VelocityEngineengine=newVelocityEngine();
  38. engine.init();
  39. VelocityContextctx=newVelocityContext();
  40. ctx.put(“stringUtils”,newStringUtils());
  41. ctx.put(“comments”,“thisisa\nnewlinetest”);
  42. ctx.put(“newline”,“\n”);
  43. ctx.put(“break”,“<br/>”);
  44. Stringtemplate=“#set($comments=$stringUtils.replace($comments,$newline,$break))”;
  45. template+=“$comments”;
  46. StringWriterwriter=newStringWriter();
  47. engine.evaluate(ctx,writer,“”,template);
  48. System.out.println(writer.toString());
  49. //assertEquals(“thisisa<br/>newlinetest”,writer.toString());
  50. }
  51. }

运行结果:

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

this is a

newline test