Velocity 读取字符串模板生成代码
2015-10-26 19:03
246 查看
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/49428277 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
后来页面不用jsp,开发了,换成velocity展示了。
想着生成页面也使用velocity。
但是发现读取文件的类库加载不进来。
http://velocity.apache.org/engine/devel/developer-guide.html
读取文件从一个字符串读取模板,生成文件写到一个字符串里面。
读取文件的也不麻烦
Velocity.mergeTemplate(“testtemplate.vm”, context, w );
在web里面可以使用toolbox引入,但是在main函数里面不知道咋加载进去。
找了半天,其实非常简单,直接new一个对象就行。
就一行:
context.put(“dateFormatUtils”, new org.apache.commons.lang.time.DateFormatUtils());
直接把新对象放入进去就可以使用格式化函数了。
博主地址是:http://blog.csdn.net/freewebsys
1,遇到问题
之前使用 freeMarker 开发 cms系统,生成html。后来页面不用jsp,开发了,换成velocity展示了。
想着生成页面也使用velocity。
但是发现读取文件的类库加载不进来。
2,解决
参考官方网站例子:http://velocity.apache.org/engine/devel/developer-guide.html
import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import java.io.StringWriter; import java.util.Date; public class CreateHtml { public static void main(String[] args) { Velocity.init(); /* lets make a Context and put data into it */ VelocityContext context = new VelocityContext(); context.put("name", "Velocity"); context.put("project", "Jakarta"); context.put("now", new Date()); /* lets make our own string to render */ String str = "We are using $project $name to render this. $now"; StringWriter stringWriter = new StringWriter(); Velocity.evaluate(context, stringWriter, "mystring", str); System.out.println(" string : " + stringWriter); } }
读取文件从一个字符串读取模板,生成文件写到一个字符串里面。
读取文件的也不麻烦
Velocity.mergeTemplate(“testtemplate.vm”, context, w );
3,类库加入
因为日期是Date,需要对时间进行格式化。在web里面可以使用toolbox引入,但是在main函数里面不知道咋加载进去。
找了半天,其实非常简单,直接new一个对象就行。
import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.apache.velocity.app.VelocityEngine; import java.io.StringWriter; import java.util.Date; public class CreateHtml2 { public static void main(String[] args) { VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.init(); Velocity.init(); /* lets make a Context and put data into it */ VelocityContext context = new VelocityContext(); context.put("name", "Velocity"); context.put("project", "Jakarta"); context.put("now", new Date()); context.put("dateFormatUtils", new org.apache.commons.lang.time.DateFormatUtils()); /* lets make our own string to render */ String str = "We are using $project $name to render this. 中文测试 $!dateFormatUtils.format($!now,'yyyy-MM-dd')"; StringWriter stringWriter = new StringWriter(); Velocity.evaluate(context, stringWriter, "mystring", str); System.out.println(" string : " + stringWriter); } }
就一行:
context.put(“dateFormatUtils”, new org.apache.commons.lang.time.DateFormatUtils());
直接把新对象放入进去就可以使用格式化函数了。
$!dateFormatUtils.format($!now,'yyyy-MM-dd')
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统