Struts2温习(8)表单验证的两种方式_第1页
Struts2温习(8)表单验证的两种方式_第2页
Struts2温习(8)表单验证的两种方式_第3页
Struts2温习(8)表单验证的两种方式_第4页
Struts2温习(8)表单验证的两种方式_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Struts2温习(8)-表单验证的两种方式XMLSpringJSP浏览器1. Struts2中的输入校验2. 编码方式校验 1) Action一定要继承自ActionSupport 2) 针对某个要进行校验的请求处理方法编写一个 public void validateXxx()方法,在方法内部进行表单数据校验. 3) 也可针对所有的请求处理方法编写public void validate()方法。 4) 在校验方法中,可以通过addFieldError()方法来添加字段校验错误消息。 5) 当校验失败时,Struts框架会自动跳转到name为input的Result页面。在校验失败页面中,可以使用来显示错误消息 6) 简单,灵活。但重用性不高。3. XML配置方式校验。在编码方式之前被执行。 1) 针对要校验的Action类,在同包下编写一个名为:Action类名-validation.xml校验规则文件。 2) 在校验规则文件中添加校验规则:具体的校验器名,参数可参看Struts2的reference或Struts2的API。 a) Field校验:针对Action类中每个非自定义类型的Field进行校验的规则。 值 校验失败时的提示消息 b) 非Field校验:针对Action类的某些Field使用OGNL表达进行组合校验。 pwd pwd2 确认密码和密码输入不一致 c) visitor校验:主要是用来校验Action类中的自定义类型Field。(针对使用模型驱动方式时) i) 在Action类的的校验规则文件中针对自定义类型Field使用visitor校验规则。 用户的信息必填userContext true 用户的 ii) 针对visitor的Field编写一个校验规则文件.文件名为: visitor字段类型名-visitor校验的上下文名-validation.xml. 例如: 本例中的文件名为User-userContext-validation.xml 注意: 此文件要存放到visitor字段类型所在的包下. iii) 在visitor的Field校验规则文件中针对要校验的Field添加校验规则. 3) 在校验失败页面(名为input的result页面)中,可以使用来显示错误消息。 4) 默认情况下,XML的校验规则对Action中所有的请求处理方法生效.此时应该只针对每个要校验的请求处理方法指定校验。有两种方式: i) 只为Action中的指定方法指定校验规则文件,配置文件命名为:Action类型名-别名-validation.xml, 别名是要校验的方法对应的Action标签的name属性值。 如:UserAction在struts2.xml的配置为: /info.jsp/user_1.jsp UserAction中有registe方法和login方法,要对registe方法进行校验,则它的校验规则文件名为:UserAction-user_registe-validation.xml。 如果使用visitor校验器,必需指定visitor校验的上下文名。 ii) 在校验拦截器中指定要验证的方法。不太实用。 /info.jsp /user_1.jsp * regist 5) 同时使用客户端校验和服务器端校验 i) 设置标签的validate属性: false:默认值。校验框架只执行服务器端校验。 true:先执行客户端校验,然后再执行服务器端校验。 form标签会根据你在服务器端配置的验证规则生成对应的JavaScript验证代码。 目前支持的内置校验器:required、requiredstring、stringlength、regex validator、email、url、int、double ii) 不太好用,不建议使用。建议使用jQuery进行页面表单校验。 6) 自定义校验器: i) 继承自FieldValidatorSupport抽象类。重写validate(Object obj)方法 ii) 注册校验器类. 在应用程序的classpath下新建一校验器注册文件。名为validators.xml,内容如下: 4. Annotation方式校验: Struts2提供了注解的方式校验 1) Validation 指明这个类或者接口将使用基于注解的校验。Struts2.1中已被标识为过时。 2) Validations() 在同一个方法上要使用多个注解校验时。 3) SkipValidation 指定某个方法不需要校验。否则所有方法都会使用校验。也可以在检验拦截器中使用validateAnnotatedMethodOnly 4) 13个内置校验器的注解版本:(注:这些注解都只能用在方法级别上) 具体参数参见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. 重复密码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负责action对象的创建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. 确认密码和密码输入不一致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. 重复密码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负责action对象的创建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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论