怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證.doc_第1頁
怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證.doc_第2頁
怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證.doc_第3頁
怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證.doc_第4頁
怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證.doc_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

怎樣在struts中實(shí)現(xiàn)JS通用表單驗(yàn)證?關(guān)鍵詞: javascript struts 通用 表單 驗(yàn)證 作者:歐陽春本篇通過介紹部分源代碼及簡單舉例來說明struts架構(gòu)中頁面輸入的JS驗(yàn)證問題及經(jīng)過擴(kuò)展后struts標(biāo)簽的使用。本struts的javascript表單驗(yàn)證能夠推出要感謝“我佛山人”的優(yōu)秀的JS表單驗(yàn)證代碼?;贘SP標(biāo)簽的驗(yàn)證請(qǐng)直接參照 通用表單驗(yàn)證.chm。下面只對(duì)struts標(biāo)簽的驗(yàn)證實(shí)現(xiàn)與使用進(jìn)行舉例說明:文中紅色標(biāo)記處為新增struts標(biāo)簽屬性,不可更改屬性中的值為關(guān)鍵字,不可更改在JSP文件中使用標(biāo)簽時(shí)就跟普通struts標(biāo)簽一樣使用,不過多了些控制屬性如簡單吧,實(shí)際的頁面效果如那么如何才能實(shí)現(xiàn)這個(gè)效果呢?別著急,一步步來,還是需要花點(diǎn)功夫的。一、擴(kuò)展struts源代碼要做到集成JS,用標(biāo)簽解決表單驗(yàn)證,這一步當(dāng)然是少不了的表單中需要驗(yàn)證的最常見的無非就是以下幾種,text、textarea、password、hidden、radio、select、checkbox,因?yàn)閠ext、password、hidden都是繼承抽象類BaseFieldTag,標(biāo)簽的實(shí)現(xiàn)也在BaseFieldTag中,加上其它的每個(gè)都要擴(kuò)展,所以需要修改和擴(kuò)展的類就有5個(gè),首先要說明的是,我們所作修改要盡量作擴(kuò)展而不是直接修改struts里面的類,這樣可以方便struts新版本的更新。由于有很多類都依賴于BaseFieldTag,而我們需要的也恰恰在BaseFieldTag里實(shí)現(xiàn),迫不得已,我們還是要修改BaseFieldTag(以增加新的屬性,無兼容性問題),除此之外,其它類一律用擴(kuò)展方式。下面只舉例修改BaseFieldTag,其它類似,就不一一列出了。關(guān)鍵部分在方法public int doStartTag()中,由于代碼較長,只列出重要部分,其實(shí)也比較簡單滴,只是將JS驗(yàn)證需要的屬性添加進(jìn)去而已,以便生成被控制的表單控件。如下if (type != null & (type.equals(text)|type.equals(hidden)|type.equals(password) if (dataType != null) results.append( dataType=); results.append(dataType); results.append(); if (min != null) results.append( min=); results.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.append(); 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.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.apache.struts.taglib.html.TextTag dataType false true max false true min false true msg false true operator false true require false true to false true format false true regexp false true .ouyang.tag.ExtRadioTag dataType false true msg false true require false true 其實(shí)標(biāo)簽名為:text、textarea、password、hidden、radio、select、checkbox都是需要添加新的屬性的三、一切就緒后,在JSP中就可以用集成JS驗(yàn)證的新的標(biāo)簽了首先,在您的JSP最前面請(qǐng)引入JS源文件,假設(shè)JS文件名為check.js,如下:script language=JavaScript src=/js/check.js在FORM處請(qǐng)如下編寫(紅色標(biāo)記處為您的Form ID):在您提交或點(diǎn)擊按鈕或任何您需要驗(yàn)證當(dāng)前表單的時(shí)候,如下:經(jīng)過擴(kuò)展,使用本標(biāo)簽已可實(shí)現(xiàn)多種標(biāo)簽(text、textarea、password、hidden、checkbox、select、radio)及多條件限制同時(shí)啟用,若使用多條件驗(yàn)證時(shí),各條件之間請(qǐng)以分號(hào)”;”間隔,且dataType與msg必須一一對(duì)應(yīng),即有一個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論