- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元6:Stuts 2输入校验
Struts 2输入校验 软件技术专业 范新灿 本章脉络 输入校验 输入校验:应用程序必须能正常处理对异常输入的过滤,这就是输入校验,也称为数据校验 通常的做法是碰到异常输入时,应用程序直接返回,提示浏览者必须重新输入。 校验示例 验证Action——validate()方法 public void validate() { // 校验是否输入用户名 if (getName() == null || getName().trim().equals()) { addFieldError(name, 必须输入用户名); }else //校验用户名的组成与长度 if(!Pattern.matches(\\w{4,15},name)){ addFieldError(name, 用户名必须是字母和数字,且长度在(4-15)范围内); } // 校验是否输入密码 if (getPass1() == null || getPass1().trim().equals()) { addFieldError(pass1, 请输入密码); } //校验密码的组成与长度 else if(!Pattern.matches(\\w{6,15},pass1)){ addFieldError(pass1, 密码必须是字母和数字,且长度在(6-15)范围内); } // 校验是否输入确认密码 if (getPass2() == null || getPass2().trim().equals()) { addFieldError(pass2, 必须输入确认密码); 验证Action——validate()方法 }else // 校验输入的密码和确认密码是否一致 if(!getPass2().equals(getPass1())) { addFieldError(pass2, 确认密码必须和密码输入保持一致); } // 校验是否输入生日 if (getBirthday() == null) { addFieldError(birthday, 必须输入生日日期); } else // 校验是否输入正确的生日日期 if (getBirthday().after(new Date())) { addFieldError(birthday, 您输入了未来日期); } // 校验输入的手机号码长度是否正确 if (getMobile().length() != 11) { addFieldError(mobile, 请输入正确的手机号码); } // 校验输入的年龄是否正确 if (getAge() 1 || getAge() 99) { addFieldError(age, 年龄必须是整数且在(1-99)之间); } } Pattern类 Pattern类是正则表达式的编译表示形式。 使用validateXxx方法进行输入校验 当Struts 2的Action类里定义了几个类似于execute的方法。 如果我们的输入校验只想校验某个处理逻辑,也就是仅校验某个处理方法,则重写validate方法无法知道需要校验哪个处理逻辑,该方法会校验所有的处理逻辑。 为了实现校验指定处理逻辑的功能,Struts 2的Action允许提供一个validateXxx方法,其中Xxx即是Action对应的处理逻辑方法,针对Action中某一特定方法进行该方法的各种字段的输入校验。 改写RegisterAction.java 类的定义中定义了一个Register方法,而没有execute方法,没有了validate方法,而是定义了validateRegister方法。 代码解析 validate方法是对所有Action中方法的输入都进行校验,而validateRegister方法只对Register方法进行校验,因此两者不要重复使用。 form表单的action属性值是:Register!Register.action,第一个“Register”是RegisterAction中的方法名,一定要和方法名保持一致;而“!”后的“Register”是在struts.xml配置文件中定义的Action配置的name值。 注册页面register.jsp表单提交后,地址栏为:http://localhost:8080/ValidateRegister/Register!Register.action,表明该表单数据输入后提交时执行的是Register方法。这是Struts 2的一个特殊
文档评论(0)