zoukankan      html  css  js  c++  java
  • UnknownHandler

    未知处理器

    从struts2.1 开始 ,struts2配置文件的DTD中增加了<unknown-handler-stack…/>和<unknown-handler-ref…/>,这个元素用于配置Struts2的未知处理器。

           当用请求未知Action、或指定action里的未知方法、或action 处理结束之后返回一个未知result ,struts2允许使用处理器来处理这些方法。

            未知处理器需要实现 UnknownHandler 接口,该接口里包含来了3个方法:

        HandleUnknownAction:用户请求未知Action时,该方法见会被回调。
        HandleUnknownActionMethod: 用户请求指定Action的未知方法时,该方法将会被回调。
        HandleUnKnownResult: action处理结束之后返回一个位置Result时,该方法将会被回调。
    

    代码如下:

    package com.struts2.action;
    
    import org.apache.struts2.dispatcher.ServletDispatcherResult;
    
    import com.opensymphony.xwork2.ActionContext;
    
    import com.opensymphony.xwork2.Result;
    
    import com.opensymphony.xwork2.UnknownHandler;
    
    import com.opensymphony.xwork2.XWorkException;
    
    import com.opensymphony.xwork2.config.entities.ActionConfig;
    
    public class MyUnKnownHandler implements UnknownHandler{
    
        /**
    
         * @param namespace 用户请求的action所在的命名空间
    
         * @param actionName 用户请求的Action的名字
    
         * @return 该Action最后生成的ActionConfig,可以返回null
    
         */
    
        @Override
    
        public ActionConfig handleUnknownAction(String namespace, String actionName)
    
               throws XWorkException {
    
           // TODO Auto-generated method stub
    
           return null;
    
        }
    
     
    
        /**
    
         * @param action 用户请求的Action对象
    
         * @param methodName 用户请求的Action 的方法名
    
         * @return 该Action 的该方法处理后返回的Result。
    
         */
    
      
    
    @Override
    
        public Object handleUnknownActionMethod(Object action, String methodName)
    
               throws NoSuchMethodException {
    
           // TODO Auto-generated method stub
    
           return null;
    
        }
    
     
    
        /**
    
         * @param  actionContext  该result所在ActionContext
    
         * @param  actionName     该result所在的Action名
    
         * @param  actionCofig    该result所在ActionContext
    
         * @param  resultCode     该result所对应的逻辑视图字符串
    
         * @return 将要被处理的结果,可以返回null
    
         */
    
        @Override
    
        public Result handleUnknownResult(ActionContext actionContext, String actionName,
    
               ActionConfig actionConfig, String resultCode) throws XWorkException {
    
           // TODO Auto-generated method stub
    
           actionContext.put("action", actionName);
    
           actionContext.put("result", resultCode);
    
           return new ServletDispatcherResult("/unknownResult.jsp");
    
        }
    
    }

     相关的配置:

    <!-- 使用bean 定义一个UnknownHandler -->
        <bean name="yeekuHandler" type="com.opensymphony.xwork2.UnknownHandler"
    
           class="com.struts2.action.MyUnKnownHandler"></bean>
    
     
    //定义未值处理栈
     <unknown-handler-stack>
            <unknown-handler-ref name="yeekuHandler"></unknown-handler-ref>
        </unknown-handler-stack>
  • 相关阅读:
    SharePoint 2013 直接给AD 组赋权限后,AD组里的用户还是登陆不了SharePoint,提示没有权限
    【转】SharePoint camel query查询 event 或者Calendar 日历列表的时候,怎么查询所有的重复发生的事件
    jquery笔记
    JavaScript_DOM
    一些正则
    springMVC笔记二
    springMVC笔记
    二叉堆
    spring整合
    遇到的错误
  • 原文地址:https://www.cnblogs.com/langtianya/p/5372861.html
Copyright © 2011-2022 走看看