参数校验框架

一.添加参数校验依赖

<!--参数校验依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

二.在controller的入参加上注解@Validated

@PostMapping
@ApiOperation("新增员工")
public Result<Void> addEmployee(@Validated @RequestBody AddEmployeeDTO addEmployeeDTO){
    employeeService.addEmployee(addEmployeeDTO);
    return Result.success();
}

三.在要校验的参数属性上添加校验规则

@NotNull(message = "用户名不能为空")
@NotBlank(message = "用户名不能为空")
@Size(min = 2,max = 10,message = "用户名只能是2-10位")
private String username;
@NotNull(message = "手机号不能为空")//判断是非为null
@NotBlank(message = "手机号不能为空")//判断是否为空字符串  ""
@Pattern(regexp = "1[0-9]{10}",message = "手机号格式有误")//正则表达式
private String phone;

四.修改全局异常处理器,增加对MethodArgumentNotValidException的处理

@ExceptionHandler(MethodArgumentNotValidException.class)
public Result methodNotValid(MethodArgumentNotValidException ex){
    BindingResult bindingResult = ex.getBindingResult();//获取“校验失败时的错误信息”
    List<ObjectError> allErrors = bindingResult.getAllErrors();//获得所有错误,包括全局错误和字段错误
    StringBuilder sb = new StringBuilder();
    for (ObjectError allError : allErrors) {
        String defaultMessage = allError.getDefaultMessage();
        sb.append(defaultMessage).append(";");
    }
    return Result.error(sb.toString());
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值