velocity java代码_Velocity 读取字符串模板生成代码

1,遇到问题

之前使用 freeMarker 开发 cms系统,生成html。

后来页面不用jsp,开发了,换成velocity展示了。

想着生成页面也使用velocity。

但是发现读取文件的类库加载不进来。

2,解决

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')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值