JSP struts2 url傳參中文亂碼解決辦法
1.設置struts.xml
<constant name="struts.i18n.encoding" value="UTF-8" />
或是設置struts.properties(我自己沒試過)
struts.i18n.encoding=UTF-8
2.在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>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter>
<filter> <filter-name>characterEncodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter>
上面用的是spring自帶的,也可以自己寫,核心語句就是request.setCharacterEncoding(this.encoding);
3.設置tomcat的配置
1和2都只能設置post方式提交數據的編碼方式,如果url有中文的話就會有亂碼,解決辦法是在
tomcat的/conf/server文件的
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
加入 URIEncoding="UTF-8"。如果你正在使用eclipse,記得重啟eclipse,把服務器的設置刪除,重新設置。我就是因為沒有這樣做搞得配置文件沒生效,調試了半天
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答