Webwork + sitemesh+eXtremeTable
的中文乱码问题
首先,简单介绍一下,这三个玩意儿。
Webwork
:WebWork是由OpenSymphony(
www.OpenSymphony.com),开发的MVC模式的J2EE Web框架。
在成功推出2.2版之后,他们的工作全面转向Struts Action Framework 2.0的开发,与STRUTS团队一起,共同推动新一代的STRUTS.
(参见:http://www.opensymphony.com/ webwork /)
Sitemesh
:同样是OpenSymphony团队的作品, 实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。
(参见:http://www.opensymphony.com/sitemesh/)
ExtremeTable
:eXtremeTable是一个可扩展的用于以表格的形式来显示数据的一组JSP标签库.提供分页、排序、另存为EXL、PDF等功能。
(参见:http://www. Extremecomponents.org)
1、 Webwork的中文问题解决
a)、webwork.properties里设置如下:
webwork.locale=zh_CN
webwork.i18n.encoding=GB2312
b)、自己写一个filter文件来Encoding一下下,
(如需,请email索取)
2、 EXtremeTable导出exl、pdf文件的中文问题
(请参照网络中相关文章)
3
、web.xml
中几个<filter-mapping>
的顺序,导致中文问题:
完成以上配置后,提交页面时,仍有中文问题的,请注意web.xml里几个<filter-mapping>的顺序,
a)、顺序该为Encoding、Sitemesh、webwork、eXtremeExport。
b)、Sitemesh的类应使用org.extremecomponents.table.filter.SitemeshPageFilter,而不是sitemesh自带的类。(至于原因嘛,得问ExtremeTable的作者了)
以下是我web.xml中filter的配置,各位同学参考一下:
<filter>
<filter-name>Encoding</filter-name>
<filter-class>com.mysteel.web.util.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
</filter>
<!--
注意:这里不用
sitemesh
自己的
filter
,而用
extremecomponents
提供的
,
否则显示不正常
-->
<filter>
<filter-name>Sitemesh</filter-name>
<filter-class>org.extremecomponents.table.filter.SitemeshPageFilter</filter-class>
</filter>
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2006-03-02