关于VelocityEngineUtils中velocityEngine生成方式的问题
我的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 来获取才能返回正常的结果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
多谢老大