写一个myActionServlet来并覆盖ActionServlet中的process()方法。protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException

/**@todo Override this org.apache.struts.action.ActionServlet method*/   
request.setCharacterEncoding("GB2312");//就加着一行一切都解决了
super.process(request, response); 
}当然别忘了改一下web.xml里面的配置 
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>strutsdemo.myActionServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>改一下servlet-class标签中的内容就可以!这是我从网上找的解决乱码问题的,请问这是什么意思啊
怎么写这个类啊

解决方案 »

  1.   

    package app;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.RequestProcessor;public class MyRequestProcessor extends RequestProcessor
    {
    public MyRequestProcessor() {}
    protected boolean processPreprocess(HttpServletRequest request,HttpServletResponse response)
    {
    try
    {
    request.setCharacterEncoding("gb2312");
    }catch (Exception ex)
    {
    ex.printStackTrace();
    }
    return true;
    }
    }
    这样写!
    然后是在struts-config.xml中配置!不是web.xml中这样写!
    <controller processorClass="app.MyRequestProcessor"/>
    这样加就可以了!~  </action-mappings>
      
      <controller processorClass="app.MyRequestProcessor"/>
    </struts-config>
    这样就可以很好的解决中文问题了~!
    其中app是你的包名!
      

  2.   

    这个老兄可能还不知道什么是servlet吧
    就是mvc的控制层
    起到一个控制传值的过程
    所以在这里的doGet(request,response)跟doPost(request,response)里设置
    request.setCharacterEncoding("gb2312");

    response.setCharacterEncoding("gb2312");
    就能解决乱码问题
    如果是在JSP页面中的话
    可以写一个单独的方法来进行转换
    public String trans(String temp){
    String str=new String(temp.getBytes("iso-8859-1"),"gb2312");
    return str;
    }这样就能解决了