《輕量級框架之 Struts2》課件-CORE-05_第1頁
《輕量級框架之 Struts2》課件-CORE-05_第2頁
《輕量級框架之 Struts2》課件-CORE-05_第3頁
《輕量級框架之 Struts2》課件-CORE-05_第4頁
《輕量級框架之 Struts2》課件-CORE-05_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

學習目標了解數(shù)據(jù)校驗的主要原理理解數(shù)據(jù)校驗的組成部分掌握數(shù)據(jù)校驗的使用概述表單是應用程序最簡單的入口,對其傳進來的數(shù)據(jù),我們必須進行校驗。轉換是校驗的基礎,只有在數(shù)據(jù)被正確地轉換成其對應的類型后,才可以對其取值范圍進行校驗。在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)。輸入校驗的流程類型轉換器對請求參數(shù)執(zhí)行類型轉換,并把轉換后的值賦給action中的屬性如果在執(zhí)行類型轉換的過程中出現(xiàn)異常,系統(tǒng)會將異常信息保存到ActionContext,conversionError攔截器將異常信息添加到fieldErrors里。不管類型轉換是否出現(xiàn)異常,都會進入第3步系統(tǒng)通過反射技術先調用action中的validateXxx()方法,Xxx為方法名再調用action中的validate()方法經過上面4步,如果系統(tǒng)中的fieldErrors存在錯誤信息(即存放錯誤信息的集合的size大于0),系統(tǒng)自動將請求轉發(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,那么該文件的取名應為: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屬性進行驗證,首先要求調用trim()方法去掉空格,然后判斷用戶名是否為空。Struts2提供的校驗器列表系統(tǒng)提供的校驗器如下:required(必填校驗器,要求field的值不能為null)requiredstring(必填字符串校驗器,要求field的值不能為null,并且長度大于0,默認情況下會對字符串去前后空格)stringlength(字符串長度校驗器,要求field的值必須在指定的范圍內,否則校驗失敗,minLength參數(shù)指定最小長度,maxLength參數(shù)指定最大長度,trim參數(shù)指定校驗field之前是否去除字符串前后的空格)regex(正則表達式校驗器,檢查被校驗的field是否匹配一個正則表達式.expression參數(shù)指定正則表達式,caseSensitive參數(shù)指定進行正則表達式匹配時,是否區(qū)分大小寫,默認值為true)int(整數(shù)校驗器,要求field的整數(shù)值必須在指定范圍內,min指定最小值,max指定最大值)double(雙精度浮點數(shù)校驗器,要求field的雙精度浮點數(shù)必須在指定范圍內,min指定最小值,max指定最大值)fieldexpression(字段OGNL表達式校驗器,要求field滿足一個ognl表達式,expression參數(shù)指定ognl表達式,該邏輯表達式基于ValueStack進行求值,返回true時校驗通過,否則不通過)email(郵件地址校驗器,要求如果field的值非空,則必須是合法的郵件地址)url(網(wǎng)址校驗器,要求如果field的值非空,則必須是合法的url地址)date(日期校驗器,要求field的日期值必須在指定范圍內,min指定最小值,max指定最大值)conversion(轉換校驗器,指定在類型轉換失敗時,提示的錯誤信息)visitor(用于校驗action中的復合屬性,它指定一個校驗文件用于校驗復合屬性中的屬性)expression(OGNL表達式校驗器,expression參數(shù)指定ognl表達式,該邏輯表達式基于ValueStack進行求值,返回true時校驗通過,否則不通過,該校驗器不可用在字段校驗器風格的配置中)校驗器的使用例子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[產品名稱應在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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論