[導(dǎo)入][AppFuse] AppFuse使用手記--Validator(八) [原]
上篇中例子還有一個小小的問題。因為所有的Action配置都指向同一個Action類。而AppFuse會對沒敢Action生成一個Validator的xml文件。而當(dāng)同一個Action里包含很多操作,而這些操作對同一個POJO效驗又不一樣時,就會出現(xiàn)問題。比較常見的時,一個POJO Create和Update時對某個field效驗不能為空,而POJO做為查詢條件時這個field卻允許為空。這樣生成的Validator配置就不能同時運用于這一個Action。
而Validator的配置文件為ActionName-validation.xml,即每個xml對應(yīng)于一個Action。所以需要我們把不同的操作放到不同的Action里,在配置不同的xml驗規(guī)則。這樣有一個問題,就是可能引起Action的類爆炸,而且不同的Action里可能會有很多相同的代碼。我但是想能不能用Action的extends來避免這個問題。后來發(fā)現(xiàn)Action的extends是可以規(guī)避類爆炸的問題,可是效驗還是會出現(xiàn)向前的問題,原因是因為“WebWork搜索活動類的繼承樹尋找父類或接口的校驗規(guī)則”。就是說,驗框架按照自上而下的順序在類層次查找配置文件。
還有一種解決的方法,就是自己寫一個Validator,可以參考結(jié)合驗證在struts中減少Action和ActionForm的數(shù)量。
我建議WebWork可以考慮在Validator的效驗規(guī)則里象struts.xml的Action標(biāo)簽一樣增加method參數(shù)。可以根據(jù)不同的method定義不同的效驗規(guī)則。
文章來源: http://heyday.blogcn.com/diary,15423464.shtml
而Validator的配置文件為ActionName-validation.xml,即每個xml對應(yīng)于一個Action。所以需要我們把不同的操作放到不同的Action里,在配置不同的xml驗規(guī)則。這樣有一個問題,就是可能引起Action的類爆炸,而且不同的Action里可能會有很多相同的代碼。我但是想能不能用Action的extends來避免這個問題。后來發(fā)現(xiàn)Action的extends是可以規(guī)避類爆炸的問題,可是效驗還是會出現(xiàn)向前的問題,原因是因為“WebWork搜索活動類的繼承樹尋找父類或接口的校驗規(guī)則”。就是說,驗框架按照自上而下的順序在類層次查找配置文件。
還有一種解決的方法,就是自己寫一個Validator,可以參考結(jié)合驗證在struts中減少Action和ActionForm的數(shù)量。
我建議WebWork可以考慮在Validator的效驗規(guī)則里象struts.xml的Action標(biāo)簽一樣增加method參數(shù)。可以根據(jù)不同的method定義不同的效驗規(guī)則。
文章來源: http://heyday.blogcn.com/diary,15423464.shtml