Struts 添加 中文支持

08/18/2010

GBKRequestProcessor 的主要作用是为 Struts 添加了一个运行过滤器,对经过其的数据进行过滤转码为 GB2312

Struts 实现中文支持步骤

  • 编写GBKRequestProcessor类,继承RequestProcessor。
    GBKRequestProcessor类保存于 Action 包
  • 重写方法 processPreprocess(),指定字符集。
  • package net.royakon.action;
    public class GBKRequestProcessor extends RequestProcessor {
    
    	protected boolean processPreprocess(HttpServletRequest request,
    			HttpServletResponse response) {
    		try{
    			request.setCharacterEncoding("gb2312");
    		}catch(Exception ex){
    			ex.printStackTrace();
    			//如果编码设置异常则终止struts流程;
    			return false;
    		}
    		//返回值为true,代表继续struts后续流程.
    		return true;
    	}
    
    }
  • 在struts-config.xml中配置自定义请求处理器。
  • <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    
    <struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="regForm" type="cn.net.royakon.form.RegForm" />
    
      </form-beans>
    
      <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="regForm"
          name="regForm"
          path="/regAction"
          scope="request"
          type="cn.net.royakon.action.RegActionAction">
          <forward name="result" path="/relult.jsp" />
        </action>
      </action-mappings>
      <!-- 配置自定义的中文处理器为主 Action 处理器 -->
      <controller processorClass="cn.net.royakon.action.GBKRequestProcessor"/>
    
      <message-resources parameter="cn.net.royakon.ApplicationResources" />
    </struts-config>