体会真正的Struts开发3(2)

类别:Java 点击:0 评论:0 推荐:

我们编写资源文件

password=<font color=red>密码格式错误</font>

userName=<font color=red>帐号格式错误</font>

hbm.session.error=建立Hibernate Session 错误。

no.user=找不到这样得用户。

hbm.session.query=Hibernate HQL 查询错误。

errors.header=</font color=red><ul>

errors.footer=</ul></font>

Logon=登陆

Logon.UserName=帐号

Logon.Password=密码

保存到C:/1.txt

然后运行

native2ascii -encoding GBK C:/1.txt C:/ApplicationResources_zh_CN.properties

将生成得C:/ApplicationResources_zh_CN.properties拷贝到src目录下,我们重新运行此登陆程序。

出现乱码,我们忘了将JSP页面编码设成UTF-8了,添加

contentType="text/html;charset=UTF-8",再次刷新

OK成功

当你在帐号框里面输入中文,但是没有通过,就会出现下图现象。

又出现乱码,这样的情况解决办法有3个:

1.  在每一个Action里面设置Response得编码,这种方法比较繁琐,每一个Action必须设置一次。

2.  利用Servlet2.3里面得过滤器,统一设置编码

3.  重载ActionServlet里面的Process函数。

 

第1种方法很难通过XML配置来获得编码方式。

2,3可以通过Web.xml里面配置参数来解决

本文讲述时利用方式2,过滤器Filter

在Tomcat里面的samples里面的Filter文件夹下有现成的编码过滤器。

拷贝来,在Eclipse利用重构,解决package不匹配问题。

下面为这个过滤器配置web.xml

<!--

        Filter

        -->

    <filter>

        <filter-name>Set Character Encoding</filter-name>

        <filter-class>com.yjsoft.filter.SetCharacterEncodingFilter</filter-class>

        <init-param>

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

            <param-value>UTF-8</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>Set Character Encoding</filter-name>

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

    </filter-mapping>

    <!--

    end

    -->

再次启动Tomcat测试,OK。

本文地址:http://com.8s8s.com/it/it16667.htm