Struts2溫習(xí)(8)表單驗(yàn)證的兩種方式_第1頁(yè)
Struts2溫習(xí)(8)表單驗(yàn)證的兩種方式_第2頁(yè)
Struts2溫習(xí)(8)表單驗(yàn)證的兩種方式_第3頁(yè)
Struts2溫習(xí)(8)表單驗(yàn)證的兩種方式_第4頁(yè)
Struts2溫習(xí)(8)表單驗(yàn)證的兩種方式_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

Struts2溫習(xí)(8)-表單驗(yàn)證的兩種方式XMLSpringJSP瀏覽器1. Struts2中的輸入校驗(yàn)2. 編碼方式校驗(yàn) 1) Action一定要繼承自ActionSupport 2) 針對(duì)某個(gè)要進(jìn)行校驗(yàn)的請(qǐng)求處理方法編寫一個(gè) public void validateXxx()方法,在方法內(nèi)部進(jìn)行表單數(shù)據(jù)校驗(yàn). 3) 也可針對(duì)所有的請(qǐng)求處理方法編寫public void validate()方法。 4) 在校驗(yàn)方法中,可以通過(guò)addFieldError()方法來(lái)添加字段校驗(yàn)錯(cuò)誤消息。 5) 當(dāng)校驗(yàn)失敗時(shí),Struts框架會(huì)自動(dòng)跳轉(zhuǎn)到name為input的Result頁(yè)面。在校驗(yàn)失敗頁(yè)面中,可以使用來(lái)顯示錯(cuò)誤消息 6) 簡(jiǎn)單,靈活。但重用性不高。3. XML配置方式校驗(yàn)。在編碼方式之前被執(zhí)行。 1) 針對(duì)要校驗(yàn)的Action類,在同包下編寫一個(gè)名為:Action類名-validation.xml校驗(yàn)規(guī)則文件。 2) 在校驗(yàn)規(guī)則文件中添加校驗(yàn)規(guī)則:具體的校驗(yàn)器名,參數(shù)可參看Struts2的reference或Struts2的API。 a) Field校驗(yàn):針對(duì)Action類中每個(gè)非自定義類型的Field進(jìn)行校驗(yàn)的規(guī)則。 值 校驗(yàn)失敗時(shí)的提示消息 b) 非Field校驗(yàn):針對(duì)Action類的某些Field使用OGNL表達(dá)進(jìn)行組合校驗(yàn)。 pwd pwd2 確認(rèn)密碼和密碼輸入不一致 c) visitor校驗(yàn):主要是用來(lái)校驗(yàn)Action類中的自定義類型Field。(針對(duì)使用模型驅(qū)動(dòng)方式時(shí)) i) 在Action類的的校驗(yàn)規(guī)則文件中針對(duì)自定義類型Field使用visitor校驗(yàn)規(guī)則。 用戶的信息必填userContext true 用戶的 ii) 針對(duì)visitor的Field編寫一個(gè)校驗(yàn)規(guī)則文件.文件名為: visitor字段類型名-visitor校驗(yàn)的上下文名-validation.xml. 例如: 本例中的文件名為User-userContext-validation.xml 注意: 此文件要存放到visitor字段類型所在的包下. iii) 在visitor的Field校驗(yàn)規(guī)則文件中針對(duì)要校驗(yàn)的Field添加校驗(yàn)規(guī)則. 3) 在校驗(yàn)失敗頁(yè)面(名為input的result頁(yè)面)中,可以使用來(lái)顯示錯(cuò)誤消息。 4) 默認(rèn)情況下,XML的校驗(yàn)規(guī)則對(duì)Action中所有的請(qǐng)求處理方法生效.此時(shí)應(yīng)該只針對(duì)每個(gè)要校驗(yàn)的請(qǐng)求處理方法指定校驗(yàn)。有兩種方式: i) 只為Action中的指定方法指定校驗(yàn)規(guī)則文件,配置文件命名為:Action類型名-別名-validation.xml, 別名是要校驗(yàn)的方法對(duì)應(yīng)的Action標(biāo)簽的name屬性值。 如:UserAction在struts2.xml的配置為: /info.jsp/user_1.jsp UserAction中有registe方法和login方法,要對(duì)registe方法進(jìn)行校驗(yàn),則它的校驗(yàn)規(guī)則文件名為:UserAction-user_registe-validation.xml。 如果使用visitor校驗(yàn)器,必需指定visitor校驗(yàn)的上下文名。 ii) 在校驗(yàn)攔截器中指定要驗(yàn)證的方法。不太實(shí)用。 /info.jsp /user_1.jsp * regist 5) 同時(shí)使用客戶端校驗(yàn)和服務(wù)器端校驗(yàn) i) 設(shè)置標(biāo)簽的validate屬性: false:默認(rèn)值。校驗(yàn)框架只執(zhí)行服務(wù)器端校驗(yàn)。 true:先執(zhí)行客戶端校驗(yàn),然后再執(zhí)行服務(wù)器端校驗(yàn)。 form標(biāo)簽會(huì)根據(jù)你在服務(wù)器端配置的驗(yàn)證規(guī)則生成對(duì)應(yīng)的JavaScript驗(yàn)證代碼。 目前支持的內(nèi)置校驗(yàn)器:required、requiredstring、stringlength、regex validator、email、url、int、double ii) 不太好用,不建議使用。建議使用jQuery進(jìn)行頁(yè)面表單校驗(yàn)。 6) 自定義校驗(yàn)器: i) 繼承自FieldValidatorSupport抽象類。重寫validate(Object obj)方法 ii) 注冊(cè)校驗(yàn)器類. 在應(yīng)用程序的classpath下新建一校驗(yàn)器注冊(cè)文件。名為validators.xml,內(nèi)容如下: 4. Annotation方式校驗(yàn): Struts2提供了注解的方式校驗(yàn) 1) Validation 指明這個(gè)類或者接口將使用基于注解的校驗(yàn)。Struts2.1中已被標(biāo)識(shí)為過(guò)時(shí)。 2) Validations() 在同一個(gè)方法上要使用多個(gè)注解校驗(yàn)時(shí)。 3) SkipValidation 指定某個(gè)方法不需要校驗(yàn)。否則所有方法都會(huì)使用校驗(yàn)。也可以在檢驗(yàn)攔截器中使用validateAnnotatedMethodOnly 4) 13個(gè)內(nèi)置校驗(yàn)器的注解版本:(注:這些注解都只能用在方法級(jí)別上) 具體參數(shù)參見(jiàn)Struts2的API或Reference。RequiredFieldValidatorRequiredStringValidatorStringLengthFieldValidatorIntRangeFieldValidatorDoubleRangeFieldValidatorDateRangeFieldValidatorExpressionValidatorFieldExpressionValidatorRegexFieldValidatorEmailValidatorUrlValidatorVisitorFieldValidatorConversionErrorFieldValidator第一個(gè)示例:XML配置式校驗(yàn)器-注冊(cè)頁(yè)面acc_registe.jspHtml代碼1. 2. 3. 4. 5. 6. Struts2中基于XML配置式的校驗(yàn)器使用示例7. 8. 9. XML配置式校驗(yàn)器-注冊(cè)頁(yè)面10. 11. 12. 13. 14. 15. ID16. 17. 18. 19. 登錄名20. 21. 22. 23. 密碼24. 25. 26. 27. 重復(fù)密碼28. 29. 30. 31. 時(shí)間32. 33. 34. 35. email36. 37. 38. 39. 考試成績(jī)40. 41. 42. 43. 44. 45. 46. 47. 48. src/struts.xmlJava代碼1. 2. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. !-指定由spring負(fù)責(zé)action對(duì)象的創(chuàng)建21. 22. -23. 24. 25. 26. 27. 28. /info.jsp29. /acc_1.jsp30. 31. 32. 33. 34. 35. AccountAction.javaJava代碼1. packagecom.javacrazyer.web.action;2. 3. importjava.util.Date;4. 5. importcom.opensymphony.xwork2.ActionSupport;6. 7. 8. publicclassAccountActionextendsActionSupport9. privatestaticfinallongserialVersionUID=-1418893621512812472L;10. privateIntegerid;11. privateStringname;12. privateStringpwd;13. privateStringpwd2;14. privateDoublescore;15. privateDateregisted_date;16. privateStringemail;17. 18. publicStringregiste()throwsException19. System.out.println(registe-);20. returnSUCCESS;21. 22. 23. publicStringlogin()throwsException24. returnSUCCESS;25. 26. 27. publicIntegergetId()28. returnid;29. 30. publicvoidsetId(Integerid)31. this.id=id;32. 33. publicStringgetName()34. returnname;35. 36. publicvoidsetName(Stringname)37. =name;38. 39. publicDoublegetScore()40. returnscore;41. 42. publicvoidsetScore(Doublescore)43. this.score=score;44. 45. publicDategetRegisted_date()46. returnregisted_date;47. 48. publicvoidsetRegisted_date(DateregistedDate)49. registed_date=registedDate;50. 51. publicStringgetEmail()52. returnemail;53. 54. publicvoidsetEmail(Stringemail)55. this.email=email;56. 57. 58. publicStringgetPwd()59. returnpwd;60. 61. 62. publicvoidsetPwd(Stringpwd)63. this.pwd=pwd;64. 65. 66. publicStringgetPwd2()67. returnpwd2;68. 69. 70. publicvoidsetPwd2(Stringpwd2)71. this.pwd2=pwd2;72. 73. AccountAction-validation.xml 與AccountAction同目錄Java代碼1. 2. 5. 6. 7. 8. 9. ID必填的10. 11. 12. 2013. 5014. ID必須在$min到$max之間15. 16. 17. 18. 19. 姓名是必填的20. 21. 22. 23. 姓名不合法24. 25. 26. 27. 28. 密碼是必填的29. 30. 31. 32. 33. 34. pwd35. pwd236. 37. 確認(rèn)密碼和密碼輸入不一致38. 39. 40. 41. 42. 0.043. 100.044. 成績(jī)必須在$minInclusive和$maxInclusive之間45. 46. 47. 48. 49. 50. 郵箱不合法51. 52. 53. 54. 55. 56. 1970-01-0157. 2019-01-0158. 注冊(cè)日期不合法59. 60. 61. 第二個(gè)示例:XML配置式校驗(yàn)器-登錄和注冊(cè)頁(yè)面user_login.jspHtml代碼1. 2. 3. 4. 5. 6. Struts2中基于XML配置式的校驗(yàn)器使用示例7. 8. 9. XML配置式校驗(yàn)器-登錄頁(yè)面10. 11. 12. 13. 14. 登錄名15. 16. 17. 18. 密碼19. 20. 21. 22. 23. 24. 25. user_registe.jspHtml代碼1. 2. 3. 4. 5. 6. Struts2中基于XML配置式的校驗(yàn)器使用示例7. 8. 9. XML配置式校驗(yàn)器-注冊(cè)頁(yè)面10. 11. 12. 13. 14. 15. ID16. 17. 18. 19. 登錄名20. 21. 22. 23. 密碼24. 25. 26. 27. 重復(fù)密碼28. 29. 30. 31. 時(shí)間32. 33. 34. 35. email36. 37. 38. 39. 考試成績(jī)40. 41. 42. 43. 44. 45. 46. 47. 48. src/struts.xmlJava代碼1. 2. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. !-指定由spring負(fù)責(zé)action對(duì)象的創(chuàng)建21. 22. -23. 24. 25. 26. 27. 28. /info.jsp29. /user_1.jsp30. 31. 32. 33. 34. UserAction.javaJava代碼1. packagecom.javacrazyer.web.action;2. 3. 4. importcom.javacrazyer.domain.User;5. importcom.opensymphony.xwork2.ActionSupport;6. 7. 8. publicclassUserActionextendsActionSupport9. privatestaticfinallongserialVersionUID=-2554018432709689579L;10. privateUseruser;/自定義類型Field11. 12. 13. 14. publicStringregiste()throwsException15. System.out.println(registe=);16. returnSUCCESS;17. 18. 19. publicStringlogin()throwsException20. returnSUCCESS;21. 22. /*23. public

溫馨提示

  • 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)論