一:数据校验的分类
数据校验分为前台校验和后台校验,前台校验主要是利用JavaScript来完成的,后台校验主要利用Java代码来完成的,可以使用SpringMvc和Hibernate validator来完成数据校验
二:后台数据校验
1:导入Maven相关Jar包(在父pom.xml文件中)
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.9.Final</version> </dependency>2:创建Java类需要校验的数据属性上添加相应的注解
package com.doaoao.check; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; public class testUser { @NotEmpty(message = "用户名不能为空") @Size(min = 5,max = 10,message = "用户名的长度为{min}-{max}之间") // 会将{min}替换为前面设置的min值 private String username; @Min(value = 0,message = "年龄的大小不能小于{vlaue}") @Min(value = 150,message = "年龄的大小不能大于{vlaue}") private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }3:修改配置文件 springmvc.xml中的内容
<!--验证器--> <bean id="doaoaoValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> </bean> <!--注册注解驱动--> <mvc:annotation-driven validator="doaoaoValidator"/>
4:创建一个Controller
package com.doaoao.check; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.List; @Controller public class UserController { @RequestMapping("/register.do") public ModelAndView register(@Validated testUser user, BindingResult br){ ModelAndView m = new ModelAndView(); List<ObjectError> allError = br.getAllErrors(); // 当格式校验出错时执行 alllError不为空时 if(allError != null && allError.size() > 0){ FieldError nameError = br.getFieldError("name"); FieldError ageError = br.getFieldError("age"); // 当用户名输入出现问题 if(nameError != null){ m.addObject("nameError",nameError.getDefaultMessage()); } // 当年龄输入出现问题 if(ageError != null){ m.addObject("ageError",ageError.getDefaultMessage()); } m.setViewName("/register"); return m; } m.addObject("name",user.getUsername()); m.setViewName("/user"); return m; } }5:jsp中的内容
<form action="/register.do" method="get"> 用户名:<input type="text" name="username">${nameError}<br> 年龄:<input type="text" name="age">${ageError}<br> <input type="submit" value="提交"> </form># 注:hibernate validator中常用注解
...
本笔记参考自:小猴子老师教程 http://www.monkey1024.com