Struts2 數(shù)據(jù)輸入校驗(yàn)(3) —— 問題補(bǔ)遺
兩種驗(yàn)證機(jī)制的執(zhí)行順序
先執(zhí)行validation.xml,后執(zhí)行Action內(nèi)部的validate()方法。
ActionSupport類對(duì)ActionError和FieldError的實(shí)現(xiàn)細(xì)節(jié)
在ActionAware接口中聲明的


ActionSupport組合了一個(gè)實(shí)現(xiàn)了ValidationAware的ValidationAwareSupport來繼承ValidationAware接口:
ValidationAwareSupport類內(nèi)部聲明了三個(gè)私有變量,
其中



FieldErrors需要注意的一點(diǎn)
我們往FieldErrors中添加錯(cuò)誤的時(shí)候,需要調(diào)用addFieldError(),而不應(yīng)該調(diào)用getFieldErrors().put()函數(shù).
這兩個(gè)方法看起來是一樣的,其實(shí)不然。
getFieldErrors()在實(shí)現(xiàn)的時(shí)候返回的是fieldErrors的一個(gè)可寫副本,修改這個(gè)副本不會(huì)真正將錯(cuò)誤傳入fieldErrors中去。addFieldError()才是真正向fieldErrors中添加內(nèi)容。
posted on 2009-02-06 14:59 bacon 閱讀(393) 評(píng)論(0) 編輯 收藏 所屬分類: J2EE