知识大全 Struts里提交中文表单到ActionForm的乱码问题

Posted

篇首语:贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Struts里提交中文表单到ActionForm的乱码问题相关的知识,希望对你有一定的参考价值。

Struts里提交中文表单到ActionForm的乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  由于Struts框架直接把表单数据发送给了ActionForm 所以这里面没有对HttpRequestServlet进行SetCharacterEncoding 所以默认是按照ISO (参见Tomcat 源代码中的nnector HttpRequestBase中的protected void parseParameters()方法)

  解决的方法 就是在表单提交到ActionForm之前对request进行编码     第一种方法 就是写一个过滤器 对所有请求进行过滤    过滤器代码      package ricoh gtis others profile filters;

  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;

  public class SetCharacterEncodingFilter implements Filter      private String encoding;     public void init(FilterConfig filterConfig) throws ServletException       // TODO Auto generated method stub      this encoding=filterConfig getInitParameter( encoding );    

  public void doFilter(ServletRequest request ServletResponse response        FilterChain chain) throws IOException ServletException       // TODO Auto generated method stub      request setCharacterEncoding(this encoding);      chain doFilter(request response);    

  public void destroy()       // TODO Auto generated method stub

  

  

    配置文件web xml        <filter>       <filter name>SetCharacterEncodingFilter</filter name>       <filter class> ricoh gtis others profile filters SetCharacterEncodingFilter</filter class>       <init param>        <param name>encoding</param name>        <param value>utf </param value>       </init param>      </filter>

  <filter mapping>       <filter name>SetCharacterEncodingFilter</filter name>       <url pattern>/*</url pattern>      </filter mapping>

    第二种方法是替换默认的控制器 apache struts action ActionServlet

  子类代码      package ricoh gtintrollers;    import java io IOException;

  import javax servlet ServletException;    import javax servlet HttpServletRequest;    import javax servlet HttpServletResponse;

  import apache struts action ActionServlet;

  public class SetEncodingActionServlet extends ActionServlet

  protected void process(HttpServletRequest request HttpServletResponse response) throws IOException ServletException       // TODO Auto generated method stub      String encoding = getInitParameter( encoding );      request setCharacterEncoding(encoding);      super process(request response);    

  

  配置文件web xml        <servlet>        <servlet name>testAction</servlet name>        <servlet class> ricoh gtintrollers SetEncodingActionServlet</servlet class>        <init param>          <param name>config</param name>          <param value>/WEB INF/struts config xml</param value>        </init param>        <init param>          <param name>encoding</param name>          <param value>utf </param value>        </init param>        <load on startup> </load on startup>      </servlet>

  <servlet mapping>        <servlet name>testAction</servlet name>        <url pattern>* testdo</url pattern>      </servlet mapping>

cha138/Article/program/Java/ky/201311/28167

相关参考

知识大全 struts2.0表单提交带参数问题

  今天在学习的时候碰到了这个问题不知道怎么搞定了也就是在提交表单的时候另外传递一个参数过去这个参数不是那些里面的东西比如要编辑一篇新闻原来转过来了这个新闻对应的编号类似这样intidd=(null=

知识大全 Struts2 国际化与防止刷新重复提交表单

Struts2国际化与防止刷新重复提交表单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本实例

知识大全 使用ActionForm一次获取表单的所有参数

使用ActionForm一次获取表单的所有参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用

知识大全 表单内容提交到邮箱

cha138/Article/program/Java/JSP/201311/19558

知识大全 struts2乱码解决方案

  今天做个项目竟然出现乱码提交表单到后台接收后打印出来的数据乱码看看配置项都好好的呀  解决步骤  strutsxml中配置<constantname=strutsinencodingvalu

知识大全 高级表单验证-针对多次提交表单

每个开发人员面对的困难是预测用户能够或是将要做什么这对于网络开发人员来说就更为困难因为他的预测必须考虑到Web的多样性和缺乏真正的session控制机制如果你已经创建过一个使用表单的ASP应用程序也许

知识大全 asp中get post提交表单区别

  asp教程中getpost提交表单区别  Get和Post方式的区别有点  get是从服务器上获取数据post是向服务器传送数据  get是把参数数据队列加到提交表单的ACTION属性所指的URL

知识大全 Struts表单验证设计指南

Struts表单验证设计指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  要在Struts项目

知识大全 struts资源文件验证表单代码

   一 form表单必须要实现继承validateForm并且不能实现validate方法不然会默认使用validate方法验证  &nb

知识大全 在表单提交前进行验证的几种方式整理

为了减轻后台压力可以利用JavaScript在表单提交前对表单数据进行验证本文整理了常用的几种方式有需求的朋友可以参考下   在表单提交前进行验证的几种方式在Django中为了减轻后台压力可