浏览 610 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-01-22
在MVC下,解决中文问题都是通过Filter实现,在struts2中,我们是通过继承FilterDispatcher来实现,普通的Filter类并不能转换成中文,至少我这边是这样。
代码如下:
public class NewFilterDispatcher extends FilterDispatcher {
private static String encoding = "GBK";
public void init(FilterConfig filterConfig) throws ServletException {
super.init(filterConfig);
String encodingParam = filterConfig.getInitParameter("encoding");
if (encodingParam != null && encodingParam.trim().length() != 0) {
encoding = encodingParam;
}
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding(encoding);
super.doFilter(request, response, chain);
}
}
对应的web.xml <filter> <filter-name>struts</filter-name> <filter-class>util.NewFilterDispatcher</filter-class> <init-param> <param-name>encoding</param-name> <param-value>gb2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 然后是在struts.properties加入如下的key-value: struts.locale=zh_CN struts.i18n.encoding=gb2312 这样struts2才能接受中文 接下来是从JDBC到mysql的转换。首先是改变mysql中的my.ini default-character-set=gb2312 一共有两处,一定要将两处改成一样才行。改完后重新启动mysql服务, 命令:net stop mysql 和net start mysql 并且需要重新建立数据库,并选择正确的字符集 然后是改变JDBC连接代码,在代码的后面加上?characterEncoding=gb2312 自此,从jsp页面到mysql中的中文转换才算结束 在struts2中,还遇到一个问题,当struts.xml中的action类,通过spring依赖注入后,发现struts2的验证框架就会出现莫名其妙的错误,像是错误列表的信息不能及时清空,不断提交,过期的验证信息不会消失。不知道大家有没有遇到过?还请指点。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-01-22
别折磨自己了,趋势是统一使用utf-8
|
|
| 返回顶楼 | |
|
时间:2008-01-23
用ajax、dwr 还得 utf-8 。
哥们改用 utf-8 吧 |
|
| 返回顶楼 | |
|
时间:2008-01-23
好的,多谢提醒。马上改一下就好了
|
|
| 返回顶楼 | |
|
时间:2008-01-23
我的struts2的应用中好像没有加任何的配置,只是用了utf-8就可以接受中文了,这一点我用的时候也不是很确定
|
|
| 返回顶楼 | |
|
时间:2008-03-17
你上面说的转中文没有那么的复杂,只要你把mysql中的my.ini
default-character-set都改成gb2312编码就可以了,不信你试试,不对的话,我们可以在讨论一个~~~ 引用 在struts2中,还遇到一个问题,当struts.xml中的action类,通过spring依赖注入后,发现struts2的验证框架就会出现莫名其妙的错误,像是错误列表的信息不能及时清空,不断提交,过期的验证信息不会消失。不知道大家有没有遇到过?还请指点。
验证框架,不知道你这个不是不客户端的验证,还是服务器的验证,反正我是没有遇到你这种情况,难不成你用的是Ajax(DWR或json) |
|
| 返回顶楼 | |
|
时间:2008-05-02
hocus 写道 别折磨自己了,趋势是统一使用utf-8
哥们,我统一使用utf-8,怎么hibernate到mysql还是乱码呢? 见 http://www.javaeye.com/topic/188904 |
|
| 返回顶楼 | |







