Struts2 Struts 2:仅从defaultStack拦截器中排除验证方法
我希望能够在Struts 2中为一个操作禁用表单验证,但使拦截器堆栈的其余部分仍然能够运行 我有一个拦截器,它检查用户是否登录,我总是希望执行该拦截器,但对于某些操作(例如输入信息),我不希望调用操作的Struts2 Struts 2:仅从defaultStack拦截器中排除验证方法,struts2,interceptor,interceptorstack,Struts2,Interceptor,Interceptorstack,我希望能够在Struts 2中为一个操作禁用表单验证,但使拦截器堆栈的其余部分仍然能够运行 我有一个拦截器,它检查用户是否登录,我总是希望执行该拦截器,但对于某些操作(例如输入信息),我不希望调用操作的validate 我试着做了如下的事情: <interceptors> <interceptor name="bankingAuthenticator" class="csc309.a4.banking.BankUserAuthenticator"/&g
validate
我试着做了如下的事情:
<interceptors>
<interceptor name="bankingAuthenticator"
class="csc309.a4.banking.BankUserAuthenticator"/>
<interceptor-stack name="secureBanking">
<interceptor-ref name="bankingAuthenticator"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureBanking"/>
<action name="Deposit!*" method="{1}" class="csc309.a4.banking.Deposit">
<result name="success">/banking/Deposit.jsp</result>
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">choose</param>
</interceptor-ref>
</action>
/banking/Deposit.jsp
选择
但是它在银行身份验证程序
拦截器和验证上都会跳过。我发现了它——解决方案如下所示:
<action name="Deposit!*" method="{1}" class="csc309.a4.banking.Deposit">
<result name="success">/banking/Deposit.jsp</result>
<interceptor-ref name="secureBanking">
<param name="workflow.excludeMethods">choose</param>
</interceptor-ref>
</action>
/banking/Deposit.jsp
选择
通过将拦截器名称前置到参数名称,可以将拦截器参数限制为特定的拦截器。在这种情况下,只有
工作流
拦截器将排除选择
方法;其他拦截器仍将为选择
行动方法而开火。正确;如果为单个操作指定拦截器ref
,则必须为该操作指定所有拦截器!您应该将您的解决方案添加为答案,然后接受它,以便将来的访问者可以从您的工作中受益:)您上面编写的代码与您在答案中编写的代码有什么区别。。。你能告诉我我没有正确地理解它吗…@NIVESHSENGAR,区别在于存款操作中的拦截器名称在上面的代码中是“defaultStack”,在答案中是“secureBanking”。你能告诉我这里选择了什么吗?方法在哪里?我试着像下面那样。但它仍然没有排除*login.jsp
Awesome;很高兴你明白了。