Struts2溫習(xí)(8)表單驗證的兩種方式_第1頁
Struts2溫習(xí)(8)表單驗證的兩種方式_第2頁
Struts2溫習(xí)(8)表單驗證的兩種方式_第3頁
Struts2溫習(xí)(8)表單驗證的兩種方式_第4頁
Struts2溫習(xí)(8)表單驗證的兩種方式_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Struts2溫習(xí)(8)-表單驗證的兩種方式XMLSpringJSP瀏覽器1. Struts2中的輸入校驗2. 編碼方式校驗 1) Action一定要繼承自ActionSupport 2) 針對某個要進(jìn)行校驗的請求處理方法編寫一個 public void validateXxx()方法,在方法內(nèi)部進(jìn)行表單數(shù)據(jù)校驗. 3) 也可針對所有的請求處理方法編寫public void validate()方法。 4) 在校驗方法中,可以通過addFieldError()方法來添加字段校驗錯誤消息。 5) 當(dāng)校驗失敗時,Struts框架會自動跳轉(zhuǎn)到name為input的Result頁面。在校驗失敗頁面中,可以使用來顯示錯誤消息 6) 簡單,靈活。但重用性不高。3. XML配置方式校驗。在編碼方式之前被執(zhí)行。 1) 針對要校驗的Action類,在同包下編寫一個名為:Action類名-validation.xml校驗規(guī)則文件。 2) 在校驗規(guī)則文件中添加校驗規(guī)則:具體的校驗器名,參數(shù)可參看Struts2的reference或Struts2的API。 a) Field校驗:針對Action類中每個非自定義類型的Field進(jìn)行校驗的規(guī)則。 值 校驗失敗時的提示消息 b) 非Field校驗:針對Action類的某些Field使用OGNL表達(dá)進(jìn)行組合校驗。 pwd pwd2 確認(rèn)密碼和密碼輸入不一致 c) visitor校驗:主要是用來校驗Action類中的自定義類型Field。(針對使用模型驅(qū)動方式時) i) 在Action類的的校驗規(guī)則文件中針對自定義類型Field使用visitor校驗規(guī)則。 用戶的信息必填userContext true 用戶的 ii) 針對visitor的Field編寫一個校驗規(guī)則文件.文件名為: visitor字段類型名-visitor校驗的上下文名-validation.xml. 例如: 本例中的文件名為User-userContext-validation.xml 注意: 此文件要存放到visitor字段類型所在的包下. iii) 在visitor的Field校驗規(guī)則文件中針對要校驗的Field添加校驗規(guī)則. 3) 在校驗失敗頁面(名為input的result頁面)中,可以使用來顯示錯誤消息。 4) 默認(rèn)情況下,XML的校驗規(guī)則對Action中所有的請求處理方法生效.此時應(yīng)該只針對每個要校驗的請求處理方法指定校驗。有兩種方式: i) 只為Action中的指定方法指定校驗規(guī)則文件,配置文件命名為:Action類型名-別名-validation.xml, 別名是要校驗的方法對應(yīng)的Action標(biāo)簽的name屬性值。 如:UserAction在struts2.xml的配置為: /info.jsp/user_1.jsp UserAction中有registe方法和login方法,要對registe方法進(jìn)行校驗,則它的校驗規(guī)則文件名為:UserAction-user_registe-validation.xml。 如果使用visitor校驗器,必需指定visitor校驗的上下文名。 ii) 在校驗攔截器中指定要驗證的方法。不太實用。 /info.jsp /user_1.jsp * regist 5) 同時使用客戶端校驗和服務(wù)器端校驗 i) 設(shè)置標(biāo)簽的validate屬性: false:默認(rèn)值。校驗框架只執(zhí)行服務(wù)器端校驗。 true:先執(zhí)行客戶端校驗,然后再執(zhí)行服務(wù)器端校驗。 form標(biāo)簽會根據(jù)你在服務(wù)器端配置的驗證規(guī)則生成對應(yīng)的JavaScript驗證代碼。 目前支持的內(nèi)置校驗器:required、requiredstring、stringlength、regex validator、email、url、int、double ii) 不太好用,不建議使用。建議使用jQuery進(jìn)行頁面表單校驗。 6) 自定義校驗器: i) 繼承自FieldValidatorSupport抽象類。重寫validate(Object obj)方法 ii) 注冊校驗器類. 在應(yīng)用程序的classpath下新建一校驗器注冊文件。名為validators.xml,內(nèi)容如下: 4. Annotation方式校驗: Struts2提供了注解的方式校驗 1) Validation 指明這個類或者接口將使用基于注解的校驗。Struts2.1中已被標(biāo)識為過時。 2) Validations() 在同一個方法上要使用多個注解校驗時。 3) SkipValidation 指定某個方法不需要校驗。否則所有方法都會使用校驗。也可以在檢驗攔截器中使用validateAnnotatedMethodOnly 4) 13個內(nèi)置校驗器的注解版本:(注:這些注解都只能用在方法級別上) 具體參數(shù)參見Struts2的API或Reference。RequiredFieldValidatorRequiredStringValidatorStringLengthFieldValidatorIntRangeFieldValidatorDoubleRangeFieldValidatorDateRangeFieldValidatorExpressionValidatorFieldExpressionValidatorRegexFieldValidatorEmailValidatorUrlValidatorVisitorFieldValidatorConversionErrorFieldValidator第一個示例:XML配置式校驗器-注冊頁面acc_registe.jspHtml代碼1. 2. 3. 4. 5. 6. Struts2中基于XML配置式的校驗器使用示例7. 8. 9. XML配置式校驗器-注冊頁面10. 11. 12. 13. 14. 15. ID16. 17. 18. 19. 登錄名20. 21. 22. 23. 密碼24. 25. 26. 27. 重復(fù)密碼28. 29. 30. 31. 時間32. 33. 34. 35. email36. 37. 38. 39. 考試成績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對象的創(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. 成績必須在$minInclusive和$maxInclusive之間45. 46. 47. 48. 49. 50. 郵箱不合法51. 52. 53. 54. 55. 56. 1970-01-0157. 2019-01-0158. 注冊日期不合法59. 60. 61. 第二個示例:XML配置式校驗器-登錄和注冊頁面user_login.jspHtml代碼1. 2. 3. 4. 5. 6. Struts2中基于XML配置式的校驗器使用示例7. 8. 9. XML配置式校驗器-登錄頁面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配置式的校驗器使用示例7. 8. 9. XML配置式校驗器-注冊頁面10. 11. 12. 13. 14. 15. ID16. 17. 18. 19. 登錄名20. 21. 22. 23. 密碼24. 25. 26. 27. 重復(fù)密碼28. 29. 30. 31. 時間32. 33. 34. 35. email36. 37. 38. 39. 考試成績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對象的創(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論