struts2 validation

struts2 validation

在使用struts2 validation時,一個action可能會處理不少業務邏輯。
如:一個action裏既有add(),又有update(),在調用add()方法返回的表單校驗失敗信息理應返回到add.jsp裏;
在調用update()方法返回的表單校驗失敗信息理應返回到update.jsp裏。這時候若是隻在struts.xml裏定義一個
input result是不行的。可是struts.xml裏只能定義一個input result,應該怎麼辦呢?

只需給add()加一個annotation便可:'@InputConfig(resultName=add_input.jsp)'
給update()加一個annotation:'@InputConfig(resultName=update_input.jsp)'

這樣就解決了只能定義一個input result的問題。

有時候,validate失敗後不但願直接返回到input頁面,而是先到一個action再formward到頁面。這種狀況很常見,好比input頁面須要一些初始化數據才能顯示出來。這時就用到了@InputConfig的另一個屬性:methodName,即validate失敗後,會調用methodName指定的一個action method,下一步具體要顯示哪一個頁面,由這個method決定。
主業務action method和這個@InputConfig(methodName="show")指定的方法在同一個context裏,這樣input頁面裏便可以輸出actionerror、actionmessage,也能夠獲得那些初始化數據了。

btw:
validation.xml文件命名方式:<ActionClassName>-<ActionAliasName>-validation.xml
如:UserAction-user_add-validation.xml
相關文章
相關標籤/搜索