Controller层方法的参数校验
2020-01-14 15:38
92 查看
[code]import com.example.demo.pojo.Student; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.validation.Valid; @Controller @RequestMapping("/stu") public class StudentController { @PostMapping("/addStu") @ResponseBody public String addStudent(@Valid Student student){ System.out.println("存储student对象"); System.out.println(student); return "ok"; } }
[code]import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; public class Student { @NotNull(message = "传入的是空值,请传值") @Min(value = 0,message = "传入学生分数有误,分数在0-100之间") @Max(value = 100,message = "传入学生分数有误,分数在0-100之间") private Integer score; @NotEmpty(message = "传入的是空字符串,请传值") @NotNull(message = "传入的是空值,请传值") private String name; @NotNull(message = "传入的是空值,请传值") @NotEmpty(message = "传入的是空字符串,请传值") @Length(min = 11,max = 11,message = "号码有误,长度应为11位") private String mobile; public Integer getScore() { return score; } public void setScore(Integer score) { this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } @Override public String toString() { return "Student{" + "score=" + score + ", name='" + name + '\'' + ", mobile='" + mobile + '\'' + '}'; } }
全局统一异常拦截器
[code]import org.springframework.validation.BindException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice public class GlobalExceptionInterceptor { @ExceptionHandler(value = Exception.class) @ResponseBody public String exceptionHandler(Exception e){ String failMessage=null; if(e instanceof BindException){ failMessage=((BindException) e).getBindingResult().getFieldError().getDefaultMessage(); } return failMessage; } }
当我们传入的参数有误时,就会被异常拦截器捕获,返回给我们错误信息。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- springboot 关于controller层传递单个参数的校验
- java中优雅的参数校验方法
- Spring Validator方法级别的参数校验,方法界别参数校验的全局处理,Sping MVC使用Hibernate Validator,自定义校验器
- Springboot集成JSR303参数校验的方法实现
- 基于SpringBoot的javax.validation.Validation的参数校验方法
- Vue 组件参数校验与非props特性的方法
- Hibernate Validator 校验方法的参数,返回值,构造函数
- springboot+dubbo+validation 进行rpc参数校验的实现方法
- SpringBoot 自定义注解 + AOP 实现必填参数非空校验、接口传入参数和应答数据打印、方法耗时统计
- SpringBoot如何优雅的处理校验参数的方法
- Spring Web利用切面统一处理参数校验异常的方法
- Spring boot进行参数校验的方法实例详解
- laravel请求参数校验方法
- python 多个参数不为空校验方法
- java方法参数校验实践
- Spring笔记 #02# 利用切面和注解校验方法参数
- 服务器端接口参数校验方法
- spring-aop 妙用-方法参数校验
- SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例
- 同时校验多个String参数是否为空的简单方法