廣告聯播

2014年12月10日 星期三

Struts 2 加入validate()後,自定義的 action methods 無法運作

From: Polin Wei

Struts 2 支援 POJO 的程式撰寫,所以可以指定 Action Method 來執行您在 struts.xml 中的設定。

action name="userLogout" method="logout" class="com.gu.EipLogin"


加入 validate() 的  this.addFieldError(...) 或 this.addActionError(...) 後,卻發生了錯誤訊息。

原因是 Struts 2 進入 Action 時,會先作 validate() ,沒有錯誤後才會執行後續的 method 如: execute()....等,若有錯誤則返回 ...; 所以當要執行指定的 method : logout() 前,發生了錯誤會返回預設的 ...,但我們又沒有指定,所以才會發生錯誤。
解決的方法是在 logout 的 method 上加入annotation: @SkipValidation ,指示此 method : logout() 不需作 validate() 即可。

沒有留言:

張貼留言