你的位置:首页 > 软件开发 > Java > Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法

Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法

发布时间:2016-08-24 16:00:09
问题:在你所有页面设置的编码都是utf-8的情况下仍然会出现中文乱码现象。一、乱码出现原因由于Struts框架直接把表单数据发送给了ActionForm,所以这里面没有对HttpRequestServlet进行SetCharacterEncoding,所以默认是按照ISO-885 ...

问题:

在你所有页面设置的编码都是utf-8的情况下仍然会出现中文乱码现象。

一、乱码出现原因

由于Struts框架直接把表单数据发送给了ActionForm,所以这里面没有对HttpRequestServlet进行SetCharacterEncoding,所以默认是按照ISO-8859-1。

二、解决办法

方法 : 就是在表单提交到ActionForm之前对request进行编码,写一个过滤器,对所有请求进行过滤

方式一:直接在过滤器中指定编码格式

MyFilter.java

Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法
 1 public class MyFilter extends HttpServlet implements Filter { 2   private static final long serialVersionUID = 1L; 3     4  5   public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws java.io.IOException, javax.servlet.ServletException {  6     // TODO Auto-generated method stub 7      arg0.setCharacterEncoding("utf-8"); //设置接收编码 8     arg1.setContentType("text/html;charset=utf-8"); 9     arg2.doFilter(arg0, arg1);  //必须10   11   }12 13   14   public void init(FilterConfig arg0) throws javax.servlet.ServletException { 15     // TODO Auto-generated method stub16   }17 18 }

原标题:Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法

关键词:Struts

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录