`

struts2下解决中文问题

阅读更多

      最近写一个程序,url中需要传递中文参数,弄了很久找不到原因。后来到网上查了下前辈们的做法,试着做了下终于成功了。现在总结如下:

     

     1、配置tomcat。在server.xml的  <Connector port="9007" protocol="HTTP/1.1"              connectionTimeout="20000" redirectPort="8443" />中加入URIEncoding="UTF-8"。这步很关键,我之所以没找到原因就是这个没配好。

       2、利用sturts2给我们的过滤器在web.xml中编写一个配置文件。

    <filter>
        <filter-name>struts-cleanup</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ActionContextCleanUp
        </filter-class>
    </filter>  
    <filter-mapping>
        <filter-name>struts-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

       3、在struts.xml中加入以下语句

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.i18n.encoding" value="UTF-8" />   
   
    ...
</struts>

     4、在jsp里

<%@page contentType="text/html;charset=UTF-8" %>

...

 <table>
 <tr>
      <td>序号</td><td>课程编号</td><td>课程名字</td><td>查询题型</td></tr>
      <%int i = 0; %>
     <s:iterator value="courseList">
     <tr>
            <td><%=++i %></td>
            <td><s:property value="courseId"/></td>
            <td><s:property value="courseName"/></td>
            <td><a href="<s:url value='findCourseByName.action'>
                            <s:param name='courseName' value='courseName'/>
                     </s:url>">进入</a>
            </td>
    </tr>
    </s:iterator>
  </table>

    5、action中测试

   

public String findCourseByName() throws Exception{

     System.out.println("println: " + courseName );
     return SUCCESS;
}

 

    6、运行显示结果为

     println: 测试

分享到:
评论
1 楼 jiang117 2008-11-11  
楼主,你说的这些我有呀,
我用如下地址访问
/test.action?name=中文。取到的name值还是乱码呀?

相关推荐

Global site tag (gtag.js) - Google Analytics