




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)習(xí)目標(biāo)了解數(shù)據(jù)校驗的主要原理理解數(shù)據(jù)校驗的組成部分掌握數(shù)據(jù)校驗的使用概述表單是應(yīng)用程序最簡單的入口,對其傳進來的數(shù)據(jù),我們必須進行校驗。轉(zhuǎn)換是校驗的基礎(chǔ),只有在數(shù)據(jù)被正確地轉(zhuǎn)換成其對應(yīng)的類型后,才可以對其取值范圍進行校驗。在Struts2中,我們可以實現(xiàn)對action的所有方法進行校驗或者對action的指定方法進行校驗。對于輸入校驗Struts2提供了兩種實現(xiàn)方法:采用手工編寫代碼實現(xiàn)?;赬ML配置方式實現(xiàn)采用手工編寫代碼實現(xiàn)根據(jù)例子,逐步體會采用手工編寫代碼實現(xiàn)校驗流程與其重要性。首先,從action開始
publicvoidvalidate(){ if(this.mobile==null||"".equals(this.mobile.trim())){ this.addFieldError("mobile","手機號不能為空"); }else{ if(!Ppile("^1[358]\\d{9}").matcher(this.mobile.trim()) .matches()){ this.addFieldError("mobile","手機號的格式不正確"); } } if(this.username==null||this.username.equals("")){ this.addFieldError("username","用戶名不能為空"); } }實例介紹xml的具體配置<actionname="user_*"class="com.xtgj.struts2.chapter05.user.UserAction"method="{1}"> <resultname="success">success.jsp</result> <resultname="input">register.jsp</result></action>實例介紹用戶注冊頁面register.jsp實例介紹若未輸入信息就點擊了提交按鈕實例介紹輸入不合法的手機號實例介紹對action指定方法輸入校驗publicvoidcheckmethod(){ if(this.mobile==null||"".equals(this.mobile.trim())){ this.addFieldError("mobile","手機號不能為空"); }else{ if(!Ppile("^1[358]\\d{9}").matcher(this.mobile.trim()) .matches()){ this.addFieldError("mobile","手機號的格式不正確"); } } if(this.username==null||this.username.equals("")){ this.addFieldError("username","用戶名不能為空"); }}publicvoidvalidateRegist(){ checkmethod();}publicvoidvalidateUpdate(){ checkmethod();}數(shù)據(jù)校驗工作方式輸入校驗在Struts2中,我們可以實現(xiàn)對action的所有方法進行校驗或者對action的指定方法進行校驗。對于輸入校驗Struts2提供了兩種實現(xiàn)方法: 1.采用手工編寫代碼實現(xiàn)。
2.基于XML配置方式實現(xiàn)。輸入校驗的流程類型轉(zhuǎn)換器對請求參數(shù)執(zhí)行類型轉(zhuǎn)換,并把轉(zhuǎn)換后的值賦給action中的屬性如果在執(zhí)行類型轉(zhuǎn)換的過程中出現(xiàn)異常,系統(tǒng)會將異常信息保存到ActionContext,conversionError攔截器將異常信息添加到fieldErrors里。不管類型轉(zhuǎn)換是否出現(xiàn)異常,都會進入第3步系統(tǒng)通過反射技術(shù)先調(diào)用action中的validateXxx()方法,Xxx為方法名再調(diào)用action中的validate()方法經(jīng)過上面4步,如果系統(tǒng)中的fieldErrors存在錯誤信息(即存放錯誤信息的集合的size大于0),系統(tǒng)自動將請求轉(zhuǎn)發(fā)至名稱為input的視圖。如果系統(tǒng)中的fieldErrors沒有任何錯誤信息,系統(tǒng)將執(zhí)行action中的處理方法輸入校驗使用基于XML配置方式實現(xiàn)輸入校驗時,action也需要繼承ActionSupport,并且提供校驗文件,校驗文件和action類放在同一個包下,文件的取名格式為:ActionClassName-validation.xml,其中ActionClassName為action的簡單類名,-validation為固定寫法。如果Action類為com.xtgj.UserAction,那么該文件的取名應(yīng)為:UserAction-validation.xml。下面是校驗文件的模版:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.3//EN""/xwork/xwork-validator-1.0.3.dtd"><validators><fieldname="username"><field-validatortype="requiredstring"><paramname="trim">true</param><message>用戶名不能為空!</message></field-validator></field></validators><field>指定action中要校驗的屬性,<field-validator>指定校驗器,上面指定的校驗器requiredstring是由系統(tǒng)提供的,系統(tǒng)提供了能滿足大部分驗證需求的校驗器,這些校驗器的定義可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。<message>為校驗失敗后的提示信息,如果需要國際化,可以為message指定key屬性,key的值為資源文件中的key。在這個校驗文件中,對action中字符串類型的username屬性進行驗證,首先要求調(diào)用trim()方法去掉空格,然后判斷用戶名是否為空。Struts2提供的校驗器列表系統(tǒng)提供的校驗器如下:required(必填校驗器,要求field的值不能為null)requiredstring(必填字符串校驗器,要求field的值不能為null,并且長度大于0,默認(rèn)情況下會對字符串去前后空格)stringlength(字符串長度校驗器,要求field的值必須在指定的范圍內(nèi),否則校驗失敗,minLength參數(shù)指定最小長度,maxLength參數(shù)指定最大長度,trim參數(shù)指定校驗field之前是否去除字符串前后的空格)regex(正則表達式校驗器,檢查被校驗的field是否匹配一個正則表達式.expression參數(shù)指定正則表達式,caseSensitive參數(shù)指定進行正則表達式匹配時,是否區(qū)分大小寫,默認(rèn)值為true)int(整數(shù)校驗器,要求field的整數(shù)值必須在指定范圍內(nèi),min指定最小值,max指定最大值)double(雙精度浮點數(shù)校驗器,要求field的雙精度浮點數(shù)必須在指定范圍內(nèi),min指定最小值,max指定最大值)fieldexpression(字段OGNL表達式校驗器,要求field滿足一個ognl表達式,expression參數(shù)指定ognl表達式,該邏輯表達式基于ValueStack進行求值,返回true時校驗通過,否則不通過)email(郵件地址校驗器,要求如果field的值非空,則必須是合法的郵件地址)url(網(wǎng)址校驗器,要求如果field的值非空,則必須是合法的url地址)date(日期校驗器,要求field的日期值必須在指定范圍內(nèi),min指定最小值,max指定最大值)conversion(轉(zhuǎn)換校驗器,指定在類型轉(zhuǎn)換失敗時,提示的錯誤信息)visitor(用于校驗action中的復(fù)合屬性,它指定一個校驗文件用于校驗復(fù)合屬性中的屬性)expression(OGNL表達式校驗器,expression參數(shù)指定ognl表達式,該邏輯表達式基于ValueStack進行求值,返回true時校驗通過,否則不通過,該校驗器不可用在字段校驗器風(fēng)格的配置中)校驗器的使用例子required必填校驗器<field-validatortype="required"><message>性別不能為空!</message></field-validator>requiredstring必填字符串校驗器<field-validatortype="requiredstring"><paramname="trim">true</param><message>用戶名不能為空!</message></field-validator>stringlength:字符串長度校驗器<field-validatortype="stringlength"> <paramname="maxLength">10</param> <paramname="minLength">2</param> <paramname="trim">true</param> <message><![CDATA[產(chǎn)品名稱應(yīng)在2-10個字符之間]]></message></field-validator>校驗器的使用例子email:郵件地址校驗器<field-validatortype="email"> <message>電子郵件地址無效</message></field-validator>regex:正則表達式校驗器<field-validatortype="regex"><paramname="expression"><![CDATA[^1[358]\d{9}$]]></param><message>手機號格式不正確!</message></field-validator>校驗器的使用例子int:整數(shù)校驗器<field-validatortype="int"> <paramname="min">1</param> <paramname="max">150</param> <message>年齡必須在1-150之間</message></field-validator>字段OGNL表達式校驗器<fieldname="imagefile"> <field-validatortype="fieldexpression"> <param
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅制壺行業(yè)直播電商戰(zhàn)略研究報告
- 外觀維修培訓(xùn)課件
- 云服務(wù)彈性伸縮策略比較-全面剖析
- 出兌超市合同樣本
- 保安隊長采購合同樣本
- 企業(yè)搬遷運輸合同標(biāo)準(zhǔn)文本
- 公戶合同樣本
- 中介幫過戶合同標(biāo)準(zhǔn)文本
- 部編三年級語文上冊第三單元素質(zhì)教育計劃
- 公園棧道合同樣本
- 《強化學(xué)習(xí)理論與應(yīng)用》深度強化學(xué)習(xí)概述
- 23CG60 預(yù)制樁樁頂機械連接(螺絲緊固式)
- -發(fā)育性髖關(guān)節(jié)脫位課件
- 嬰幼兒的心肺復(fù)蘇-課件
- 小說敘述視角與敘述人稱公開課課件
- sat數(shù)學(xué)考試試題
- 泰國介紹英文
- 中國的農(nóng)業(yè)和工業(yè)
- 家長進課堂之日常急救小常識
- 整本書閱讀教學(xué)之《蘋果樹上的外婆》導(dǎo)讀課設(shè)計
- 幼兒園自主性游戲?qū)嵤┎呗匝芯?論文
評論
0/150
提交評論