pom文件引入依赖:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency>
VO 页面数据添加注解,传过来的数据进行校验。
/**
* 个人用户 --展示对象 -- 注册
* @author wly
*/
public class SavePersonUserVO {
private long id;
@NotBlank
private String personName;
@Min(0)
@Max(1)
@NotNull
private int sex;
@Min(1)
@Max(4)
@NotNull
private int licenseType;
@NotBlank
private String licenseNumber;
@NotBlank
private String telNumber;
@NotBlank
private String address;
@NotBlank
private String email;
//get、set方法
//toString 方法
}
Controller层使用@Valid注解, bindResult为出错数据
public Object savePersonUser(@Valid @RequestBody SavePersonUserVO savePersonUserVO, BindingResult bindResult, HttpServletResponse resp) {
logger.info("PersonUserController.savePersonUser>>>>>>personUserInfoVO:" + savePersonUserVO);
if (savePersonUserVO == null) {
return ErrorEnum.ILLEGAL_REQUEST_PARAMETER.resp(resp);
}
Result result = new Result();
if (bindResult.hasErrors()) {
if (logger.isWarnEnabled()) {
StringBuilder content = new StringBuilder();
for (FieldError item : bindResult.getFieldErrors()) {
content.append(item.getField()).append("=").append(item.getDefaultMessage()).append(",");
}
logger.info("个人用户注册时请求参数非法,原因:[{}]", content.substring(0, content.length() - 1));
}
return ErrorEnum.ILLEGAL_REQUEST_PARAMETER.resp(resp);
}
// ... ...
result.setInfo(true);
logger.info("PersonUserController.savePersonUser>>>>>>result:" + JsonUtils.object2Json(result));
return result;
}
postMan测试:
VO层注解总结:
@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max,min) 被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内