Struts的類型轉(zhuǎn)換與輸入校驗(yàn)_第1頁(yè)
Struts的類型轉(zhuǎn)換與輸入校驗(yàn)_第2頁(yè)
Struts的類型轉(zhuǎn)換與輸入校驗(yàn)_第3頁(yè)
Struts的類型轉(zhuǎn)換與輸入校驗(yàn)_第4頁(yè)
Struts的類型轉(zhuǎn)換與輸入校驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

企業(yè)級(jí)JAVAII

軟件工程系:聶常紅

cred_n@163.com內(nèi)容回顧Struts2使用什么框架上傳文件Struts2文件上傳語(yǔ)法如何設(shè)置上傳文件的大小及類型?國(guó)際化資源文件有什么作用?如何定義國(guó)際化資源文件?如何輸出國(guó)際化消息?如何設(shè)置及替換帶占位符的國(guó)際化消息?第7講Struts2的類型轉(zhuǎn)換和輸入校驗(yàn)7.1Struts2的類型轉(zhuǎn)換7.2輸入校驗(yàn)概述7.3使用編程方式進(jìn)行校驗(yàn)7.4使用Struts2校驗(yàn)框架校驗(yàn)7.1類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換的必要Struts2內(nèi)置類型轉(zhuǎn)換器

Struts2內(nèi)建了字符串和boolean、char、int、short、float、double等基本數(shù)據(jù)類型以及它們的包裝類和Date、數(shù)組(元素為字符串)、集合(元素為字符串)等類型之間的類型轉(zhuǎn)換器自定義類型轉(zhuǎn)換器基于OGNL的類型轉(zhuǎn)換

借助于OGNL表達(dá)式的支持,Struts2允許以另一種簡(jiǎn)單方式將請(qǐng)求參數(shù)轉(zhuǎn)換成復(fù)合類型基于OGNL的類型轉(zhuǎn)換示例login.jsp:welcome.jsp:OGNL表達(dá)式類型轉(zhuǎn)換中的錯(cuò)誤處理Struts2在執(zhí)行類型轉(zhuǎn)換出現(xiàn)錯(cuò)誤時(shí),將由conversionError攔截器負(fù)責(zé)將對(duì)應(yīng)錯(cuò)誤封裝成字段級(jí)別錯(cuò)誤(FieldError),并將它們放入到ActionContext中conversionError攔截器處理類型轉(zhuǎn)換異常后,系統(tǒng)會(huì)跳轉(zhuǎn)到名為input的邏輯視圖默認(rèn)的字段級(jí)別錯(cuò)誤顯示:Invalidfieldvalueforfield“XXX”.(XXX為字段名)7.2輸入校驗(yàn)概述輸入校驗(yàn)是指在數(shù)據(jù)提交給程序之前,對(duì)輸入數(shù)據(jù)的合法性進(jìn)行檢查,只允許合法的數(shù)據(jù)進(jìn)入應(yīng)用程序。輸入校驗(yàn)類型:客戶端校驗(yàn):通過(guò)在HTML頁(yè)面中的JavaScript來(lái)校驗(yàn),方式:自定義腳本或使用Struts2框架自帶的客戶端校驗(yàn)機(jī)制(設(shè)置form的validate屬性為true即可)服務(wù)端校驗(yàn):通過(guò)后臺(tái)加入檢驗(yàn)代碼實(shí)現(xiàn)7.3使用編程方式進(jìn)行校驗(yàn)在action類可以通過(guò)編程方式實(shí)現(xiàn)輸入校驗(yàn),根據(jù)校驗(yàn)代碼的位置,又可分為以下兩種:使用業(yè)務(wù)邏輯處理方法校驗(yàn)使用validate或validateXxx方法校驗(yàn)“Xxx”對(duì)應(yīng)某個(gè)業(yè)務(wù)邏輯處理方法名;存在validateXxx方法時(shí),會(huì)首先執(zhí)行validateXxx方法,然后再執(zhí)行validate方法;如果該動(dòng)作的父類同樣定義了這些方法,則首先執(zhí)行父類validateXxx方法,然后父類validate方法,然后按上面所述順序執(zhí)行子類的驗(yàn)證方法使用業(yè)務(wù)邏輯處理方法校驗(yàn):該方法是將校驗(yàn)代碼放到動(dòng)作類的業(yè)務(wù)邏輯處理方法如execute()中,如下所示:缺點(diǎn):1)校驗(yàn)代碼和業(yè)務(wù)邏輯代碼混合,程序的可讀性差,增加維護(hù)難度2)必須顯式指明出錯(cuò)時(shí)的結(jié)果使用validate或validateXxx方法校驗(yàn)將校驗(yàn)代碼放到validate()中,即重寫ActionSupport類的validate(),或放到自定義的validateXxx(),如下所示:優(yōu)點(diǎn):1)校驗(yàn)代碼和業(yè)務(wù)邏輯代碼分開,程序的可讀性和維護(hù)性都較好2)校驗(yàn)出錯(cuò),自動(dòng)跳轉(zhuǎn)到input結(jié)果缺點(diǎn):當(dāng)校驗(yàn)代碼比較多時(shí),會(huì)使得validate()程序很臃腫,對(duì)管理和維護(hù)增加難度7.4使用Struts2校驗(yàn)框架校驗(yàn)該方式是指將校驗(yàn)代碼從action代碼中剝離出來(lái),以聲明的方式放到XML配置文件中,從而簡(jiǎn)化了action代碼。使用校驗(yàn)框架校驗(yàn)語(yǔ)法:必須定義一個(gè)與動(dòng)作類同名、保存在同一目錄下的且后綴為-validation.xml的XML校驗(yàn)配置文件,如動(dòng)作類名為ValidateAction,則該XML文件名為ValidateAction-validation.xml必須在XML校驗(yàn)配置文件中對(duì)每個(gè)校驗(yàn)字段配置校驗(yàn)器對(duì)所有的業(yè)務(wù)方法有效。針對(duì)于某個(gè)業(yè)務(wù)方法的校驗(yàn)XML命名方法為:動(dòng)作類名-動(dòng)作名-validation.xml,此時(shí)搜索順序是:動(dòng)作類名-validation.xml、動(dòng)作類名-動(dòng)作名-validation.xml常用的struts2校驗(yàn)器:required:

不允許非字符串?dāng)?shù)據(jù)空值requiredstring:

必須是字符串且不能為空stringlength:

字符串長(zhǎng)度檢驗(yàn)器,可以定義字符串的范圍,常用參數(shù):minLength、maxLengthint:

必須是整數(shù),可以定義整數(shù)的范圍,常用參數(shù):min、maxdate:

必須是日期,可以定義日期范圍,常用參數(shù):min、maxdouble:

必須是雙精度數(shù),可以定義小數(shù)的范圍,常用參數(shù):min、maxfieldexpression:對(duì)指定的OGNL表達(dá)式求值email:

必須符合郵件書寫格式url:

必須符合網(wǎng)址書寫格式regex:

格式檢驗(yàn)器,必須符合指定的書寫格式Struts2校驗(yàn)器的配置方式有兩種:字段型校驗(yàn)器的配置方式,書寫格式:非字段型校驗(yàn)器的配置方式:書寫格式<fieldname=“待校驗(yàn)字段名稱”><field-validatortype=“校驗(yàn)器名稱”><paramname=“參數(shù)名”>參數(shù)值</param><message>校驗(yàn)失敗的提示信息</message><!--<messagekey=“key”/>--></field-validator></field><validatortype=“校驗(yàn)器名稱”><paramname=“fieldName”>待校驗(yàn)字段名稱</param><paramname=“參數(shù)名”>參數(shù)值</param><message>校驗(yàn)失敗的提示信息</message></validator>字段型校驗(yàn)器配置說(shuō)明:validators:根標(biāo)簽,用于包含所有需檢驗(yàn)的字段標(biāo)簽field:字段標(biāo)簽,使用name屬性來(lái)指定需校驗(yàn)的字段field-validator:字段校驗(yàn)器標(biāo)簽,通過(guò)type屬性指定校驗(yàn)器來(lái)定義校驗(yàn)機(jī)制param:用于定義校驗(yàn)字段的參數(shù),包含在field-validator標(biāo)簽中(可選)message:定義校驗(yàn)失敗時(shí)的提示信息(自定義或來(lái)自于資源文件),包含在field-validator標(biāo)簽中,且放在param標(biāo)簽后面使用字段校驗(yàn)器校驗(yàn)輸入數(shù)據(jù)示例:步驟:創(chuàng)建Struts2項(xiàng)目創(chuàng)建動(dòng)作類RegisterAction創(chuàng)建RegisterAction-validation.xml文件,定義每個(gè)表單域的檢驗(yàn)機(jī)制編寫資源文件RegisterAperties,在其中添加一些數(shù)據(jù)類型轉(zhuǎn)換出錯(cuò)提示信息和校驗(yàn)出錯(cuò)提示信息創(chuàng)建兩個(gè)JSP頁(yè)面,分別用于信息輸入和信息顯示,保存目錄為WebRoot設(shè)置配置文件,在其中定義動(dòng)作包和動(dòng)作創(chuàng)建動(dòng)作類:創(chuàng)建RegisterAction-validation.xml:(接前)(接前)編寫RegisterAperties創(chuàng)建輸入信息的validateInput.jsp:創(chuàng)建顯示信息的validateOutput.jsp:設(shè)置配置文件:執(zhí)行結(jié)果:○Struts2輸入校驗(yàn)的步驟請(qǐng)求參數(shù)執(zhí)行類型轉(zhuǎn)換校驗(yàn)框架校驗(yàn)數(shù)據(jù)有效性類型轉(zhuǎn)換是否出錯(cuò)?執(zhí)行validateXxxx()執(zhí)行validate()是否包含F(xiàn)ieldError?將錯(cuò)誤提示信息保存Ac

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論