关于struts2中redirect传中文参数乱码问题
struts.xml部分代码
XML code
<action name="terrace_*" class="terraceAction" method="{1}">
<result name="success" type="redirect">terrace_query.action?groupId=${groupId}&currentPage=${currentPage}&keyword=${keyword}</result>
<result name="list">jsp/TerraceList.jsp</result>
<result name="add">jsp/TerraceAdd.jsp</result>
<result name="update">jsp/TerraceEdit.jsp</result>
<result name="detail">jsp/TerraceDetail.jsp</result>
<interceptor-ref name="mystack" />
</action>
其中keyword是查询关键字,当它是中文的时候就会出现乱码,试了老多方法都不行,求高手指点。补充说明:过滤器,页面及mysql数据库用的都是gbk编码,tomcat配置文件server.xml中设置了 URIEncoding="gbk"
------解决方案--------------------当然不行了,先编码然后传递,传递过去解码 URL里有编码解码的静态类
------解决方案--------------------想起他方法把,在页面定义一些参数,在action中得到。。
------解决方案--------------------检查直接在当前action中做好了,返回success之前。
------解决方案--------------------数据库连接字符串是否设置编码,建表语句是否设置,
还有就是你的提交是否是post提交
------解决方案--------------------在你的tomcat/conf/server.xml 中 大概90 来行的位置 加上URIEncoding="gb2312" 试试
-->
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8686"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="gb2312"/>
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->