Struts框架_9 Struts2的驗證
Struts2的驗證
驗證分為兩種:
>宣告式驗證:
I.先明確對哪-個Action的哪-個欄位進行驗證: age
II.編寫配置檔案:
>把struts-2.3.15.3\apps\struts2-blank \WEB- INF \classes \example下的Login-validation. xml檔案複製到當前Action所在的包下。
>把該配置檔案改為:把Login改為當前Action的名字。
>編寫驗證規則:參見struts-2.3.15. 3/docs/WW/ docs/validation.html 文件即可.
>在配置檔案中可以定義錯誤訊息:
>該錯誤訊息可以國際化嗎?
根路徑下:
III.若驗證失敗,則轉向input 的那個result.所以需要配置name=input的result
<result name=" input">/validation.jsp</result>
IV,如何顯示錯誤訊息呢?
>若使用的是非simple,則自動顯示錯誤訊息。
>若使用的是simple主題,則需要s:fielderror標籤或直接使用EL表示式(使用OGNL)
${fieldErrors.age[0] }
OR
<s:fielderror fieldName=" age" ></s :fielderror>*
Struts2內建的驗證規則
●conversion validator :轉換驗證器
●date validator :日期驗證器
●double validator :浮點驗證器
●email validator : email驗證器
●expression validator :表示式驗證器
●fieldexpression validator :欄位表示式驗證器
●int validator :整型驗證器
●regex validetor :正規表示式驗證器
●required validator :非空驗證器
●requiredstring validator :非空字串驗證器
●stringlength validator :字串長度驗證器
●url validator : url格式驗證器
●visitor validator :複合屬性驗證器
驗證程式的配置:
3).注意:若一個Action 類可以應答多個action請求,多個action 請求使用不同的驗證規則,怎麼辦?
>為每一個不同的action請求定義其對應的驗證檔案: ActionClassName-AliasName-validation . xml
>不帶別名的配置檔案: ActionClassName-validation. xml中的驗證規則依然會發生作用。可以把各個action公有的驗證規則配置在其中,但需要注意的是,只適用於某一個action的請求的驗證規則就不要這裡再配置了
4),宣告式驗證框架的原理:
> Struts2 預設的攔截器棧中提供了一個validation攔截器
>每個具體的驗證規則都會對應具體的一個驗證器, 有一個配置檔案把驗證規則名稱和驗證器關聯起來了。而實際上驗證的是那個驗證器
該檔案位於com. opensymphony . xwork2. validator . validators下的default .xml
<validator name= "required" class= "com.opensymphony.xwork2.validator.validators.RequiredFieldValidator>
Struts2內建的驗證程式
●required:確保某給定欄位的值不是空值null ," "。
●requiredstring:確保某給定欄位的值既不是空值null,也不是空白.
- trim 引數.預設為true,表示struts在驗證該欄位值之前先剔除前後空格.
●stringlength:驗證一 個非空的欄位值是不是有足夠的長度.
- minLength: 相關欄位的最小長度.若沒有給出這個引數該欄位將沒有最小長度限制
- maxLength:相關欄位的最大長度.若沒有給出這個引數該欄位將沒有最大長度限制
- trim: 在驗證之前是否去除前後空格
●date:確保某給定日期欄位的值落在一 個給定的範圍內
- max:相關欄位的最大值,若沒給出這個引數該欄位將沒有最大值限制
- min:相關欄位的最小值.若沒給出這個引數該欄位將沒有最小值限制
●email:檢查給定String值是否是-一個合法的email
●ur:檢查給定String值是否是一一個合法的url
●rgex:檢查某給定欄位的值是否與一一個給定的正規表示式模式相匹配.
- expresssion*:用來匹配的正規表示式
- caseSensitive: 是否區分字母的大小寫.預設為true
trim:是否去除前後空格.預設為true
●int:檢查給定整數字段值是否在某- 個範圍內
- min:相關欄位的最小值.若沒給出這個引數,該欄位將沒有最小值限制
- max:相關欄位的最大值.若沒給出這個引數該欄位將沒有最大值限制
●conversion: 檢查對給定Action屬性進行的型別轉換是否會導致一個轉換錯誤.該驗證程式還可以在預設的型別轉換訊息的基礎上新增一條自定義的訊息
短路驗證器:<validator/>元素和<field-validator /> 元素可以指定一個可選的short-circuit屬性,該屬性指定該驗證器是否是短驗證器,預設值為false。對同一個欄位內的多個驗證器, 如果一個短路驗證器驗證失敗,其他驗證器不會繼續校驗
●expression 和fieldexpression;用來驗證給定欄位是否滿足一個OGNL表示式
-前者是一個非欄位驗證程式,後者是一個欄位驗證程式.
-前者在驗證失敗時將生成一個action錯誤而後者在驗證失敗時會生成一個欄位錯誤
- expression*: 用來進行驗證的OGNL表示式
6).若型別轉換失敗,預設情況下還會執行後面的攔截器,還會進行驗證,可以通過修改ConversionErrorInterceptor 原始碼的方式使當型別轉換失敗時,不再執行後續的驗證攔截器,, 而直接返回input的result
將原始碼複製到包中,修改部分程式碼:
7).關於非欄位驗證:不是針對於某一個欄位的驗證,
顯示非欄位驗證的錯誤訊息,使用s:actionerror標籤: <s : actionerror/>
8).不同的欄位使用同樣的驗證規則,而且使用同樣的響應訊息?
9). 自定義驗證器:
定義一個驗證器的類
>自定義的驗證器都需要實現Validator .
>可以選擇繼承ValidatorSupport或FieldValidatorSupport類
>若希望實現一個一般的驗證器,則可以維承ValidatorSupport
>若希望實現一個欄位驗證器,則可以繼承FieldValidatorSupport
>具體實現可以參考目前已經有的驗證器。
>若驗證程式需要接受一個輸入引數, 需要為這個引數增加一個相應的屬性
II. 在配置檔案中配置驗證器
>預設情況下下,Struts2 會在類路徑的根目錄下載入validators.xml檔案。在該檔案中載入驗證器.
該檔案的定義方式同預設的驗證器的那個配置檔案:位於com. opensymphony . xwork2. validator. validators下的default.xml
>若類路徑下沒有指定的驗證器,則從com. opensymphony.xwork2. validator.validators下的default.xml中的驗證器載入
程式設計驗證
●Struts2提供了一個Validateable介面,可以使Action類實現這個介面以提供程式設計驗證功能
●ActionSupport類已經實現了Validateable介面
相關文章
- Struts2教程5:使用Validation框架驗證資料框架
- Struts2的框架框架
- 在struts2框架中實現手動處理輸入驗證框架
- Struts2框架的基本使用框架
- Struts 驗證框架 配置和使用框架
- struts2 使用Maven搭建Struts2框架的開發環境Maven框架開發環境
- 【Struts2框架學習】框架
- Struts2框架學習(一)框架
- struts2生成隨機驗證碼圖片隨機
- Struts2教程4:使用validate方法驗證資料
- struts2資料校驗
- Java之struts2框架學習Java框架
- 【Struts2】:Struts2的型別轉換型別
- Struts2框架快速入門筆記框架筆記
- 框架學習:webWork框架和struts2框架的結構和分析框架Web
- myeclipse使用struts2框架,struts.xml怎麼配置Eclipse框架XML
- struts2框架搭建學習遇到的問題框架
- JAVAEE框架學習——Struts2——Action API 使用Java框架API
- Struts2中請求引數校驗
- struts2環境搭建---【小白系列】0基礎到熟練應用struts2框架(一)框架
- Struts1、Struts2、Hibernate、Spring框架工作原理介紹Spring框架
- Struts2教程1:第一個Struts2程式
- 使用struts2框架,web.xml怎麼配置框架WebXML
- 【原創】Struts1.x系列教程(12):Validator驗證框架的內建標準驗證框架
- 如何自定義Struts2表單驗證後的錯誤資訊顯示格式/樣式
- Struts2 - OGNL表示式和Struts2標籤庫
- struts2總結(三)--官網下載struts2的jar包JAR
- struts1與struts2的區別
- 一個請求在Struts2框架中的處理流程框架
- Struts2框架的檔案上傳--common-fileupload框架
- Struts2(一) 學習興趣、框架簡介、框架優缺點框架
- Struts2 resultType(十五)
- Struts2 FilterDispatcher StrutsPrepareAndExecuteFilterFilter
- Struts2工程搭建
- struts2入門
- Struts2核心元件元件
- Struts2工作原理
- 【Struts2】Session的獲取Session