关于VelocityEngineUtils中velocityEngine生成方式的问题

飞天苹果 发布于 2013/05/24 15:57
阅读 7K+
收藏 0
我的velocityEngine的创建方式是:
VelocityEngine velocityEngine = new VelocityEngine("velocity.properties");
在配置文件中配置了input.encoding=utf-8;output.encoding=utf-8;
通过velocityeEngine.getProperty("input.encoding")能够正确获得其值,
velocityEngine.evaluate方法解析#parse("template.vm"),返回很正常

但是我使用VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,"template.vm",params)
的时候返回的字符串是乱码!
而当我使用spring的VelocityEngineFactoryBean来获取engine:
VelocityEngineFactoryBean bean = new VelocityEngineFactoryBean();
Properties properties = new Properties();
properties.put("input.encoding","utf-8");
properties.put("output.encoding","utf-8");
VelocityEngine engine = bean.createvelocityEngine();
这时候使用VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,"template.vm",params)却是正常
的,
我看了velocityEngineUtils和VelocityEngineFactoryBean的源码,但是还是看不出来此处获取的velocityEngine
有什么不同,类型还是velocity定义的类型,并没有继承重写的问题存在。
所以想问下是不是

VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,"template.vm",params)


里的velocityEngine必须用 VelocityEngineFactoryBean 来获取才能返回正常的结果

加载中
0
红薯
红薯

木有用过这么复杂的,一般只用 VelocityEngine ,帮顶

飞天苹果
飞天苹果
我用velocityEngine的解析模板文件的时候是解析的#parse(template)语句,感觉有点麻烦, 这个velocityEngineUtils是spring-context-support里的工具类。可以直接将模板文件和数据整合,所以就用了一下,用来规定发送验证邮件的格式
飞天苹果
飞天苹果
多谢老大
返回顶部
顶部