velocity找不到模板资源,中文问题

时间:2022-11-24 18:53:00

今天想用velocity写个生成HTML的代码,结果在main方法里可以找到VM模板

在action中死活就是不行

后来在网上找了方法,一种是在配置文件中改,我嫌麻烦,因为生成就一个方法,还是直接在读取的时候加入


Properties p = new Properties();
p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");

VelocityEngine ve = new VelocityEngine();
ve.init(p);

将velocity的读取路径变成src下的

这样就可以了

顺便提下中文的问题,因为转成HTML后会出现乱码

本来是自己把项目编码改成UTF-8,乱码

后来加了句


Template t = ve.getTemplate("velocity.vm","utf-8");

还是乱码

最后在导出的时候设置了response,终于OK

HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=gb2312");