本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和
《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本文的原文连接是:
http://blog.csdn.net/freewebsys/article/details/49428277
未经博主允许不得转载。
博主地址是:
http://blog.csdn.net/freewebsys
1,遇到问题
之前使用 freeMarker 开发 cms系统,生成html。
后来页面不用jsp,开发了,换成velocity展示了。
想着生成页面也使用velocity。
但是发现读取文件的类库加载不进来。
参考官方网站例子:
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
()
VelocityContext context = new VelocityContext()
context
.put
(
"name"
,
"Velocity"
)
context
.put
(
"project"
,
"Jakarta"
)
context
.put
(
"now"
, new Date())
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
()
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
())
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')