源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

struts2 中文乱码的解决办法分享

  • 时间:2020-07-25 08:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:struts2 中文乱码的解决办法分享
适合情况 -> 从jsp传入到action时的乱码情况,这里以GBK为例 1.建立一个用于转换编码的filter 文件位置举例:src.util.SetCharacterEncodingFilter.java
[u]复制代码[/u] 代码如下:
package util; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.UnavailableException; /**  * Example filter that sets the character encoding to be used in parsing the  * incoming request  */ public class SetCharacterEncodingFilter implements Filter {     /**      * Take this filter out of service.      */     public void destroy() {     }     /**      * Select and set (if specified) the character encoding to be used to      * interpret request parameters for this request.      */     public void doFilter(ServletRequest request, ServletResponse response,     FilterChain chain)throws IOException, ServletException {     request.setCharacterEncoding("gbk");     // 传递控制到下一个过滤器     chain.doFilter(request, response);     }     public void init(FilterConfig filterConfig) throws ServletException {     } }
2.修改web.xml,在struts的FilterDispatcher映射之前添加2个filter
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <listener>   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>     <filter>   <filter-name>Set Character Encoding</filter-name>   <filter-class>util.SetCharacterEncodingFilter</filter-class>  </filter>  <filter-mapping>      <filter-name>Set Character Encoding</filter-name>      <url-pattern>/*</url-pattern>  </filter-mapping>     <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>          <filter>   <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  </filter>   <filter-mapping>   <filter-name>struts2</filter-name>   <url-pattern>/*</url-pattern>  </filter-mapping> </web-app>
3.你的JSP头应该有 <%@ page language="java" pageEncoding="GBK"%> 4.在struts.xml中修改默认的编码设定
[u]复制代码[/u] 代码如下:
<struts>  <constant name="struts.i18n.encoding" value="gbk"></constant> ... ... ... </struts>
基本上就这样可以解决大多传入的字符乱码问题 PS:如果是数据库提取字符乱码,比如mysql,确认你的数据库内字符是gbk,并且连接字符串指定了字符编码 <property name="url" value="jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=gbk"></property>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部