struts2 的s:url标签参数乱码问题解决问题的方案
利用struts2做的分页,
<s:url id="url_go" action="infoaction">
<s:param name="project_name" value="project_name"></s:param>
<s:param name="username" value="username"></s:param>
</s:url>
<s:property escape="false"
value="%{page.getHtmlPaginationCode(#url_go, page)}"/>
点击下一页时,传递的参数出现乱码。尝试了各种方法,像
1、 在struts配置文件中设置:
<constant name="struts.i18n.encoding" value="UTF-8" />
2、在web.xml文件中配置spring的过滤器
<filter>
<filter-name>setCharacterEncoding</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、进行解码
try {
project_name=new String(project_name.getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这三种方式均不能解决问题,最后只有修改tomcat的配置文件,在connecter项中添加 URIEncoding="UTF-8"
这样终于解决了问题!