我有一个定制的拦截器。我希望这个拦截器能在所有的动作调用上运行,除了少数几个。我想对此进行编程(为了可扩展/清晰),而不是在拦截器的intercept()方法本身中使用if/for语句检查操作的名称。
我认为这可能是用Struts2的“排除方法”能力来完成的,但我仍然无法解释具体的细节。我认为我的拦截器需要扩展MethodFilterInterceptor,但是它有2种拦截方法,而且API在说明每个拦截方法应该做什么方面没有多大帮助:
受保护的抽象字符串doIntercept(ActionInvocation调用) 子类必须重写以实现拦截器逻辑。 字符串拦截(ActionInvocation调用) 覆盖以处理拦截
发布于 2014-02-11 12:58:52
你的想法正好相反:
与其检查Action (或者更好的是instanceOf来检查某个特定的Action ),不如告诉该操作使用不同的Interceptor。
例如,您可以说您的自定义堆栈(包含您的拦截器的堆栈)是默认的(然后应用于所有操作),但是ActionA、ActionB和ActionX运行在DefaultStack.
发布于 2014-02-11 12:58:36
https://stackoverflow.com/questions/21702368
复制相似问题