- 在实体属性中添加注解
@NotNull : 用在基本类 型上 不能为null 但可以为空字符串
@NotEmpty : 用在集合类上 不能为空 并且长度必须大于0
@NotBlank : 只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@Length:表示长度
@Pattern:表示正则表达式
@Email:表示邮箱格式
@Min:最小值
@Max:最大值 更多注解看后面
@NotBlank(message = "项目不能为空") @Length(max = 12, message = "用户真实姓名不能超过12位") @Length(min = 11, max = 11, message = "手机号长度不正确") @Email @Min(value = 0, message = "最小值为0") @Max(value = 2, message = "最大值为2") @ApiModelProperty(value = "项目id") @TableField("PROJECT_ID") private String projectId; @NotBlank(message = "手机号不能为空") @Pattern(regexp = "^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\\d{8})$", message = "手机号格式不正确") private String mobile; @NotBlank(message = "验证码不能为空") private String smsCode;
- Controller中请求实体添加@Valid注解
@PostMapping("login") public GraceJSONResult login(@Valid @RequestBody RegistLoginBO registLoginBO, HttpServletRequest request) throws Exception {
- 全局异常捕获处理类中添加处理逻辑
@ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public GraceJSONResult returnNotValidException(MethodArgumentNotValidException e) { BindingResult result = e.getBindingResult(); Map<String, String> errors = getErrors(result); return GraceJSONResult.errorMap(errors); } public Map<String, String> getErrors(BindingResult result) { Map<String, String> map = new HashMap<>(); List<FieldError> errorList = result.getFieldErrors(); for (FieldError fe : errorList) { // 错误所对应的属性字段名 String field = fe.getField(); // 错误信息 String message = fe.getDefaultMessage(); map.put(field, message); } return map; }