比如,當我要添加一個信用卡的時候,我需要信用卡的CardType, 這些數據是存在數據庫中的,我要先通過action 的一個 create方法,取到信用卡的類型:
Struts的配置文件:
input.jsp
當提交input.jsp 的時候,Validate 檢查沒有通過,這時我需要回到input.jsp,此時應該下拉列表框的CreditType應該被保留,只需要在example.CreditCardAction 實現 Preparable接口,并實現prepare 方法,然后在add的 action中加上
這樣,在驗證前將首先調用 prepare方法,即使失敗了回到input.jsp頁面creditCardType選擇框的值仍然存在。
<interceptor-ref name="defaultStack"/> 中的 defaultStack 是我們在struts.xml 中配置的,其中我們注釋掉了 <interceptor-ref name="prepare"/> 這樣在example.CreditCardAction中的其他Action就不會首先執行prepare方法,只有加上了 <interceptor-ref name="prepare"/> 的才會去首先執行 prepare方法。
Copyright @ Eric_jiang Powered by: .Text and ASP.NET Theme by: .NET Monster