添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

本文的原文连接是: 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 () ; /* 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')