velocity是和freemaker一样,是个模版生成的引擎,但最近在使用中发现遇到了中文的问题,最后查资料后解决了。 我的环境是TOMCAT 5.0.28,程序中用了servlet,也用了filter了,VM模版的文件头部也加
了%@page ....%那玩意了,但还是出现乱码,后来解决方法如下
首先千万要记得,下载velocity 1.4外,还要下载velocity tools 1.2这个压缩包,解压后,把其中的veloctiy-tools.jar和velocity.jar一起放到web-inf\lib文件下,并且在web.xml里,配置velocity如下
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
并且要把tools.xml和velocity.properties这两个文件放到web-inf下。
关于tools.xml,可以参考这篇文章http://www.blogjava.net/hiswing/archive/2006/08/21/64746.html中说的,
而velocity.proerties,则可以参考velocity里自带的文件,但要修改其中的
input.encoding=GB2312
output.encoding=GB2312
这样就可以正确处理中文了,否则即使有了servlet的过滤器,也是不能正确显示中文的哦
了%@page ....%那玩意了,但还是出现乱码,后来解决方法如下
首先千万要记得,下载velocity 1.4外,还要下载velocity tools 1.2这个压缩包,解压后,把其中的veloctiy-tools.jar和velocity.jar一起放到web-inf\lib文件下,并且在web.xml里,配置velocity如下
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
并且要把tools.xml和velocity.properties这两个文件放到web-inf下。
关于tools.xml,可以参考这篇文章http://www.blogjava.net/hiswing/archive/2006/08/21/64746.html中说的,
而velocity.proerties,则可以参考velocity里自带的文件,但要修改其中的
input.encoding=GB2312
output.encoding=GB2312
这样就可以正确处理中文了,否则即使有了servlet的过滤器,也是不能正确显示中文的哦