在spring mvc中我们对于前端请求过来的参数都需要进行相应的校验才将它存入数据库才对,这样会减少对于数据库校验的负担,但是要是我们使用硬编码的形式来实现数据的校验的话,就要有很多的编码,在spring mvc中我们可以使用注解的形式来实现对于数据的校验,我们可以实现类似下面的校验方式了
user modal上
// 对数据属性设置成不能为空,或者 MAX等
@NotBlank(message="登录用户名不能为空")
private String loginName;
userController中
// 使用@Valid 表明获取到的数据模型需要验证,传入的Errors对象就是验证出错之后的数据对象,包括校验错误的个数,具体的信息等
@RequestMapping(value="/register", method=RequestMethod.POST)
public String registerForm(
@Valid @ModelAttribute User user, Errors error){
logger.info("注册新用户");
if ( error.hasErrors()) {
logger.error("出错啦");
}
userList.add(user);
logger.info("注册的用户信息:/n" + user);
return "login";
}
要想用这些功能特性的话,我们可以依赖hibernate-validator这个工具包来实现
在meven中配置依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.2.1.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.1.0</version>
</dependency>
这里注意,要加入classmate这个依赖,在hibernate-validator的5.2以上的版本中需要这个依赖