MyEclipse 6.0 GA for eclipse 3.3已經(jīng)正式發(fā)布了,但還不支持struts2。我還是先用著5.5GA吧。
struts1里面的ActionForm有分ActionForm和DynaActionForm,如果需要使用Validator的話,也有分為ValidatorForm,ValidatorActionForm,DynaValidatorForm,DynaValidatorActionForm幾種。一般用得比較多的是Dyna的Form,而其中又以Validator使用較為普遍。我都試過用,其中DynaValidatorForm和DynaValidatorActionForm比較容易混淆。
用簡(jiǎn)單的話說,這2者寫法上的區(qū)別在于這3個(gè)地方:
1)struts-config.xml:ActionForm type應(yīng)分別為org.apache.struts.validator.DynaValidatorForm和org.apache.struts.validator.DynaValidatorActionForm
2)Action里的分別使用為:DynaActionForm addLoginMemberForm = (DynaActionForm) form;和DynaValidatorActionForm addOrdersForm = (DynaValidatorActionForm) form;
3)validation.xml里:DynaValidatorForm引用form的方法是如addLoginMemberForm,用名稱,而DynaValidatorActionForm是使用spring里注冊(cè)的action路徑:/addOrders
很多時(shí)候?qū)⒁粋€(gè)ActionForm公用到多個(gè)Action上(兩者通過name屬性來關(guān)聯(lián)),這時(shí)麻煩出來了.由于不同業(yè)務(wù)處理對(duì)數(shù)據(jù)的有效性驗(yàn)證的要求略有不同,這對(duì)處理數(shù)據(jù)驗(yàn)證的validator框架提供了一個(gè)要求----如何根據(jù)不同的業(yè)務(wù)請(qǐng)求,對(duì)同一個(gè)ActionForm進(jìn)行不同的數(shù)據(jù)驗(yàn)證了?
使用DynaValidatorActionForm,校驗(yàn)是根據(jù)action元素的path屬性值來區(qū)分FormBean,而action元素的path屬性值正是不同action區(qū)分的唯一標(biāo)記,這樣根據(jù)不同的action我們對(duì)同一個(gè)ActionForm給出不同的驗(yàn)證規(guī)則了。