温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
 

最近学习struts2是一个问题接着一个问题的遇到

刚解决了java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity

接着就来最讨厌的乱码问题,我数据库用的mysql,大家都知道mysql本省就有可能出现乱码,加之现在跟struts2混合在一起,指不定会出现什么乱七八糟的编码,这谁也说不清楚

整体思路那就是统一编码(所有的内容都采用同一个编码)

大概从这几个方面来排查

a)         首先确认mysql的字符编码,他默认为拉丁文,这里我修改为gbk

b)        jsp页面中明确指明编码类型

<%@ page language="java" contentType="text/html; charset=gbk"

pageEncoding="gbk"%>

上面的意思是指定tomcat的编码为gbk

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

    下面的意思是指定web浏览器的编码为gbk

c)        习惯性的加上spring的字符过滤器

web.xml中添加过滤器

<filter>

        <filter-name>CharacterEncodingFilter</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <init-param>

            <param-name>encoding</param-name>

            <param-value>gbk</param-value>

        </init-param>

        <init-param>

            <param-name>forceEncoding</param-name>

            <param-value>true</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>CharacterEncodingFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

d)        最后别忘了在struts.xmlstruts.properties中覆盖struts2默认国际化的编码格式

<constant name="struts.i18n.encoding" value="gbk"></constant>

到此编码应该已经统一为gbk了,看看结果吧

其实最简单的放法就是把数据库和jsp中的编码统一设置为utf-8即可

posted on 2009-10-19 14:08 雪山飞鹄 阅读(398) 评论(0)  编辑  收藏 所属分类: struts2

只有注册用户登录后才能发表评论。


网站导航: