论坛首页 Java企业应用论坛

关于struts2--mysql中问问题的解决

浏览 3291 次
精华帖 (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的验证框架就会出现莫名其妙的错误,像是错误列表的信息不能及时清空,不断提交,过期的验证信息不会消失。不知道大家有没有遇到过?还请指点。
   发表时间:2008-01-22  
别折磨自己了,趋势是统一使用utf-8
0 请登录后投票
   发表时间:2008-01-23  
用ajax、dwr 还得 utf-8 。
哥们改用 utf-8 吧
0 请登录后投票
   发表时间:2008-01-23  
好的,多谢提醒。马上改一下就好了
0 请登录后投票
   发表时间:2008-01-23  
我的struts2的应用中好像没有加任何的配置,只是用了utf-8就可以接受中文了,这一点我用的时候也不是很确定
0 请登录后投票
   发表时间:2008-03-17  
你上面说的转中文没有那么的复杂,只要你把mysql中的my.ini
default-character-set都改成gb2312编码就可以了,不信你试试,不对的话,我们可以在讨论一个~~~

引用
在struts2中,还遇到一个问题,当struts.xml中的action类,通过spring依赖注入后,发现struts2的验证框架就会出现莫名其妙的错误,像是错误列表的信息不能及时清空,不断提交,过期的验证信息不会消失。不知道大家有没有遇到过?还请指点。

验证框架,不知道你这个不是不客户端的验证,还是服务器的验证,反正我是没有遇到你这种情况,难不成你用的是Ajax(DWR或json)
0 请登录后投票
   发表时间:2008-05-02  
hocus 写道
别折磨自己了,趋势是统一使用utf-8

哥们,我统一使用utf-8,怎么hibernate到mysql还是乱码呢?

http://www.iteye.com/topic/188904
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics