我用jbuilder开发,今天学着来用struts架构.做得还算比较顺利,但是在第一个页面向第二个页面传值的时候发生了中文乱码问题.请各位高手讲解一下,重谢!

解决方案 »

  1.   

    写一个类
    import org.apache.struts.action.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class MyRequestProcessor extends RequestProcessor {
        protected boolean processPreprocess(HttpServletRequest request,
                                            HttpServletResponse response) {
            try{
                request.setCharacterEncoding("gb2312");
            }catch(Exception e){
                e.printStackTrace();
            }
            return (true);
        }
    }
    再在struts-config.xml中加上
      <controller processorClass="包名.MyRequestProcessor">
      </controller>
      

  2.   

    请问是不是直接在url传的???
    如果是的话,修改tomcat8080端口的URIEncoding=“你用的编码”试试
      

  3.   

    写一个filter 或者
    <a  href='xxx.jsp?id=  <%=java.net.URLEncoder.encode(  "参数 ",  "GBK  ")%  >' >  
      

  4.   

    写个自己的EncodeActionServletpackage com.test.struts;import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import javax.servlet.*;
    import java.io.*;public class EncodeActionServlet extends ActionServlet
    {
        protected void process(
            HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException
        {
            HttpSession session = request.getSession(true);
            if (session.isNew())//session超时
            {
                response.sendRedirect("/login.jsp");
                return;
            }
            request.setCharacterEncoding("utf-8"); //进行统一的中文转码
            super.process(request, response);
        }
    }
    然后在web.xml里加入如下配置:<!-- Action Servlet Configuration -->
      <servlet>
        <servlet-name>actionServlet</servlet-name>
        <servlet-class>com.test.struts.EncodeActionServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>  <!-- Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>actionServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>重启tomcat,就OK了.
      

  5.   

    <1>既然用struts了,也就用struts标签呀多简单!!!你在你的项目里建这第一个文件,ApplicationResources.properties
    把所有中文都写在里面,例:global.infoPrompt=系统消息提示区
    在页面中用<bean:message key="global.infoPrompt"/>调用
    <2>我用的是Weblogic服务器写了一个bat文件
    set path=D:\bea\jdk141_05\bin
    @REM pause;native2ascii src\ApplicationResources.properties  src\ApplicationResources_zh_CN.properties
    @REM pause;
    cd..
    copy src\*.xml  Start\WEB-INF\classes
    @REM pause;
    copy src\*.properties Start\WEB-INF\classes
    @REM pause;
    d:
    CD D:\bea\user_projects\domains\mydomain
    startWebLogic
    这样编写JSP时代码中没有一个汉字不过你的想要的汉字一个也不少