【问题标题】:Struts2 prepare interceptor - How to skip certain methodsStruts2 准备拦截器 - 如何跳过某些方法
【发布时间】:2017-03-14 15:16:47
【问题描述】:
我已经准备好使用中的拦截器。在一个动作类中,我有一个名为testSomething() 的动作方法,还有一个名为prepareTestSomething() 的动作方法。
我在这里面临的问题是,prepare 拦截器会调用prepareTestSomething() 操作方法,就好像它是testSomething() 的准备方法一样,在这种情况下它不是。
有没有办法让准备拦截器跳过对某些操作方法的调用?与验证拦截器一样,我们可以使用“excludeMethods”参数。
【问题讨论】:
标签:
java
configuration
struts2
struts2-interceptors
【解决方案1】:
在Xxx 方法前添加prepare 词是Struts2 约定,它告诉框架它是prepare() 方法用于Xxx 操作方法。来自the docs:
如果动作类有prepare{MethodName}(),就会被调用
为了使这个巫术起作用,而不是做其他巫术(比如排除方法),只需更改方法名称,这是唯一正确的方法。
叫它initTestSomething(),initializeTestSomething(),preparzTestSomething()...随便;但是,请不要使用 convention 试图使其适用于其他事物。只是……错了。