1.在web.xml中添加(一定要添加在servlet声明之前)
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>struts.pms.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
2.建立filter类(SetCharacterEncodingFilter.java)
package struts.pms.filters;import javax.servlet.*;
import java.io.IOException;public class SetCharacterEncodingFilter implements Filter {
private FilterConfig config = null;
  private String defaultEncode = "UTF-8";   public void init(FilterConfig config) throws ServletException {
this.config = config;
if(config.getInitParameter("Charset")!=null){
defaultEncode=config.getInitParameter("Charset");
}
  }   public void destroy() {
this.config = null;
  }   public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
ServletRequest srequest=request;
srequest.setCharacterEncoding(defaultEncode);
chain.doFilter(srequest,response);
  }
}

解决方案 »

  1.   

    大哥,你的方法行不通啊!
    我的程序已经写好filter类了,转换没问题!
    就是:<a href="/WebFlat/rateTypeAction.do?action=modify&type=中文问题>">修改</a>
    这种方式传值到actioForm去不能转成中文,我已经测试过了,它有经过filter类,但是转不成中文,不知道为什么!
    我把我的filter类换成你的,也不行,转换不成功!其它要是通过<html:submit>方式提交form的话就没问题!~~~期待高手解决!!!
      

  2.   

    我的问题已经用了另一种方法解决了!~~~
    不过还是希望有人能给个比较好用的转制中文的方法,就是无论参数传进来的值是???号还是已经是正确的中文字符,返回来的值都是正确的中文字符。(不知道有没有这样的方法)
    期待ing!!~~~
      

  3.   

    tomcat下url里不能用中文的action=<%=URLEncoder.encode("中文问题")%>