pom引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
修改实体类User
package com.woniuxy.ssm.entity;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
*
* @TableName user
*/
@Data
public class User implements Serializable {
/**
*
*/
private Integer id;
/**
* 用户名
*/
@NotBlank(message = "用户名不能为空")
@Length(message = "用户名长度不能超过{max}个字符",max = 10)
private String userName;
/**
* 电话
*/
@Pattern(regexp = "^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$",message = "手机号码有误!")
private String tel;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
@Size(message = "密码不小于{min}位", min= 8)
private String password;
/**
* 年龄
*/
@NotNull(message = "请输入年龄")
@Range(message = "年龄范围为 {min} 到 {max} 之间", min = 1, max = 100)
private Integer age;
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8")
private Date createDate;
/**
*
*/
private String headImg;
/**
*
*/
private Integer deptId;
private static final long serialVersionUID = 1L;
}
方法一:修改UserController中的add方法
/**
* @Description TODO
* @Valid 表示对这个对象校验
* @param user
* @param bindingResult 获取的是校验的结果,这个对象有许多方法获取校验信息,可以自定义返回信息
* @Return com.woniuxy.ssm.util.Result
* @Author fengSir
* @Date Create by 2022-06-12 14:58
*/
@PostMapping("addDo")
public Result add(@Valid @RequestBody User user, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return Result.error(bindingResult.getFieldError().getDefaultMessage());
}
int result = userService.insertSelective(user);
return Result.ok();
}
方法二:使用全局异常处理错误信息
UserController中的add方法
@PostMapping("addDo")
public Result add(@Validated @RequestBody User user){
int result = userService.insertSelective(user);
return Result.ok();
}
自定义全局异常
package com.woniuxy.ssm.util;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* @author :fengSir
* @date :Created By 2022-06-12 16:12
* @description :TODO
*/
@RestControllerAdvice
public class ValidExceptionHandler {
@ExceptionHandler(BindException.class)
public Result validExceptionHandler(BindException exception) {
return Result.error(exception.getBindingResult().getFieldError().getDefaultMessage());
}
}