4
我希望能夠在Struts 2中禁用一個動作的表單驗證,但攔截器堆棧的其餘部分仍然能夠運行。Struts 2:從defaultStack攔截器驗證排除方法
我有一個攔截器,檢查用戶是否登錄,我總是想要執行,但對於某些操作(例如輸入信息),我不希望操作的調用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>
但它跳過了雙方的bankingAuthenticator
攔截和驗證。
正確;如果您爲單個動作指定了'interceptor-ref',則必須爲該動作指定* all *攔截器!您應該添加您的解決方案作爲答案,然後接受它,以便將來的訪問者可以從您的工作中受益:) –
上面寫的代碼和您在答案中寫的代碼有什麼不同?您能告訴我我沒有得到它正確..... –
@NIVESHSENGAR,不同之處在於存款操作中的攔截器名稱在上面的代碼中是「defaultStack」,而在答案中是「secureBanking」。 – Jengerer