**注意:**一般前端传来的数据是不可信的,前端校验过了,后端也应该重新校验,因为不排除绕过浏览器直接通过Http工具向后端请求的情
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
@NotNull使用在Bean的字段注解中。它是 JSR303(Bean的校验框架)的注解,在controller的方法中验证时(运行时检查一个属性是否为空)使用,如果不合法(为空),注解中的提示信息会保存在result中。
@Getter
@Setter
public class UserValid implements Serializable {
@NotNull(message = "id不能为空")
private Long id;
@NotNull(message = "date不能为空")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Future(message = "只能是将来的日期")
private Date date;
@NotNull
@DecimalMax(value = "10000.0")
@DecimalMin(value = "1.0")
private Double doubleValue = null;
@NotNull
@Max(value = 100, message = "最大值")
@Min(value = 1, message = "最小值")
private Integer integer;
@Range(min = 1,max = 100,message = "范围")
private Long range;
@Email(message = "邮箱格式错误")
private String email;
@Size(min = 2,max = 10,message = "字符串长度在2-10")
private String size;
}
@RestController
public class TestController {
@RequestMapping("validate/valid")
@ResponseBody
public Map<String,Object> valid(@Valid @RequestBody UserValid userValid, Errors errors){
Map<String, Object> errMap = Maps.newHashMap();
List<ObjectError> allErrors = errors.getAllErrors();
for (ObjectError oe:allErrors){
String key;
String msg;
if(oe instanceof FieldError){
FieldError fe = (FieldError)oe;
key = fe.getField();// 获取错误验证字段名
} else {
// 非字段错误
key = oe.getObjectName();// 获取验证对象名称
}
// 错误信息
msg = oe.getDefaultMessage();
errMap.put(key, msg);
}
return errMap;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/mingyuli/article/details/120434810
内容来源于网络,如有侵权,请联系作者删除!