<controller>与 RequestProcessor类处理请求

来源:互联网 发布:java基础教程视频教程 编辑:程序博客网 时间:2024/05/29 14:33

 

J2EE开发各类资源下载清单,  史上最全IT资源,个人收藏总结!


<controller>标签的配置主要是为了能让Struts能够识别由开发者自定义的控制器组件。使他们使用不同的RequestProcessor类处理请求。

  <controller processorClass="edu.encoding.RequestChinese"></controller>

  processorClass:指定请求的Java类的完整类路径名。默认为org.apache.struts.action.RequestProcessor。

用户自定义的RequestProcessor类

 (1)用户自己写的类必须继承RequestProcessor类,并且重写其process()方法。

 (2)此类和ActionServlet的作用一样的,是处理请求的控制器组件,其是被ActionServlet调用处理请求的。即在进入ActionForm和Action之前处理的请求。

  public class RequestChinese extends RequestProcessor {

   @Override

   public void process(HttpServletRequest request, HttpServletResponse response)

   throws IOException, ServletException {

      request.setCharacterEncoding("utf-8");

     //下句是一定要执行的,其意思是将请求交给下面的控制器。

     super.process(request, response);

   }

}

在struts-config.xml中的映射:

 <controller processorClass="edu.encoding.RequestChinese"></controller>

或者:

 <controller>

    <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>

 </controller>


原创粉丝点击