• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Spring自带的校验框架Validation的使用实例

java 搞代码 4年前 (2022-01-05) 33次浏览 已收录 0个评论

今天小编就为大家分享一篇关于Spring自带的校验框架Validation的使用实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1.首先来一个项目结构图以及所需jar包

可以看到,没有添加除了日志和jstl相关的jar包外,没有其他spring以外的第三方jar包(即使用的是spring自带的校验框架)。

2.从前台页面开始,首先是接收用户信息的表单loginForm.jsp

   <title>测试validator接口验证</title> <h3>登录页</h3><!-- 绑定user --> <table> <tr> <td>登录名:</td><td></td><!-- 使用form:errors标签 显示loginname属性的错误信息 --><td></td></tr><tr> <td>密码:</td><td></td><!-- 使用form:errors标签 显示password属性的错误信息 --><td></td></tr><tr> <td></td></tr></table>

3.实体类User.java

 public class User { private String loginname; private String password; //省略set和get方法… }

4.控制器UserController.java 

 @Controller public class UserController { //注入UserValidator对象 @Autowired @Qualifier("userValidator") private UserValidator userValidator; @RequestMapping(value="/{formName}") public String loginForm( @PathVariable String formName,Model model){ User user = new User(); model.addAttribute("user", user); // 动态跳转页面 return formName; } @RequestMapping(value="/login", method=RequestMethod.POST) public String login(@ModelAttribute User user,Model model,Errors errors){ model.addAttribute("user", user); //调用userValidator的验证方法 userValidator.validate(user, errors); //如果验证不通过跳转到loginForm视图 if(errors.hasErrors()){ return "loginForm"; } return "success"; } }

5.校验器UserValidator.java

 //实现Spring的Validator接口 @Repository("userValidator") public class UserValidator implements Validator{ //该校验器能够对clazz类型的对象进行校验 public boolean supports(Class clazz) { //User指定的class参数所表示的类或接口是否相同,或是否是其超类的超接口 return User.class.isAssignableFrom(clazz); } //对目标类target进行校验,并将校验错误记录在errors中 public void validate(Object target, Errors errors) { /** *使用ValidationUtils中的一个静态方法rejectIfEmpty()来对 *loginname属性进行校验,假若‘loginname'属性是null或者空字符 *串的话,就拒绝验证通过。 */ ValidationUtils.rejectIfEmpty(errors, "loginname", null,"登录名不能为空"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", null,"密码不能为空"); User user = (User) target; if(user.getLoginname().length() > 10){ //使用Errors的rejectValue方法验证 errors.rejectValue("loginname", null, "用<p style="color:transparent">来源gao!%daima.com搞$代*!码$网</p>户名不能超过10个字符"); } if(user.getPassword() != null && !user.getPassword().equals("") && user.getPassword().length() <6){ errors.rejectValue("password", null, "密码不能小于6位"); } } }

6.spring的配置文件和web.xml的配置文件略……

小结:

第一遍敲这个代码的时候,有着各种各样的小问题出现,比较多的就是 类所对应的路径要import对,因为不同的包中可能会有相同名字的类,而此时一不小心就会导错了包,会给后面的编写代码带来不必要的麻烦。昨天的时候就调试这个小小的demo就花了好久的时间,后来也没再去管,然后今天有空了又重新敲了一遍代码,发现没有问题,直接一次就通过了,然后去对比昨天的代码发现,是我在第一遍敲代码的时候把实体类的get和set方法的名字敲错了(追溯起来的话是写属性的时候把属性名敲错了,然后get和set方法是自动生成的,后面去修改属性时导致没有将相应的set和get方法改正),哎,,,还是太粗心

ok,然后就是启动服务器运行程序…

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对gaodaima搞代码网的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是Spring自带的校验框架Validation的使用实例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Spring自带的校验框架Validation的使用实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址