資源描述:
《怎樣在struts中實現(xiàn)JS通用表單驗證》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、怎樣在struts中實現(xiàn)JS通用表單驗證?關(guān)鍵詞:javascript??struts??通用??表單??驗證????????????????????????????????????????作者:歐陽春本篇通過介紹部分源代碼及簡單舉例來說明struts架構(gòu)中頁面輸入的JS驗證問題及經(jīng)過擴(kuò)展后struts標(biāo)簽的使用。本struts的javascript表單驗證能夠推出要感謝“我佛山人”的優(yōu)秀的JS表單驗證代碼。基于JSP標(biāo)簽的驗證請直接參照通用表單驗證.chm。下面只對struts標(biāo)簽的驗證實現(xiàn)與使用進(jìn)行舉例說明:文中紅色標(biāo)記處為新增struts標(biāo)簽屬性,不可更改屬性中的值為關(guān)鍵字
2、,不可更改在JSP文件中使用標(biāo)簽時就跟普通struts標(biāo)簽一樣使用,不過多了些控制屬性如簡單吧,實際的頁面效果如那么如何才能實現(xiàn)這個效果呢?別著急,一步步來,還是需要花點功夫的。一、擴(kuò)展struts源代碼要做到集成JS,用標(biāo)簽解決表單驗證,這一步當(dāng)然是少不了的表單中需要驗證的最常見的無非就是以下幾種,text、textarea、password、hidden、radio、select、checkbox,因為text、password、hi
3、dden都是繼承抽象類BaseFieldTag,標(biāo)簽的實現(xiàn)也在BaseFieldTag中,加上其它的每個都要擴(kuò)展,所以需要修改和擴(kuò)展的類就有5個,首先要說明的是,我們所作修改要盡量作擴(kuò)展而不是直接修改struts里面的類,這樣可以方便struts新版本的更新。由于有很多類都依賴于BaseFieldTag,而我們需要的也恰恰在BaseFieldTag里實現(xiàn),迫不得已,我們還是要修改BaseFieldTag(以增加新的屬性,無兼容性問題),除此之外,其它類一律用擴(kuò)展方式。下面只舉例修改BaseFieldTag,其它類似,就不一一列出了。關(guān)鍵部分在方法publicintdoStartT
4、ag()中,由于代碼較長,只列出重要部分,其實也比較簡單滴,只是將JS驗證需要的屬性添加進(jìn)去而已,以便生成被控制的表單控件。如下……if(type!=null&&(type.equals("text")
5、
6、type.equals("hidden")
7、
8、type.equals("password"))){if(dataType!=null){results.append("dataType="");results.append(dataType);results.append(""");}if(min!=null){results.append("min="");result
9、s.append(min);results.append(""");}if(max!=null){results.append("max="");results.append(max);results.append(""");}if(operator!=null){results.append("operator="");results.append(operator);results.append(""");}if(require!=null){results.append("require="");results.append(require);results.a
10、ppend(""");}if(to!=null){results.append("to="");results.append(to);results.append(""");}if(format!=null){results.append("format="");results.append(format);results.append(""");}if(regexp!=null){results.append("regexp="");results.append(regexp);results.append(""");}if(msg!=null){results.
11、append("msg="");results.append(msg);results.append(""");}if(onselect!=null){results.append("onSelect="");results.append(onselect);results.append(""");}}……???二、修改你的struts中的struts-html.tld文件在相關(guān)tag處增加需要的屬性,例如……textorg.