Spring注解方式校验前端输入

😂 这篇文章最后更新于1181天前,您需要注意相关的内容是否还可用。

例如将前端传值封装为实体类

public class User {
    private String name;
    private Integer age;
    private String phone;
}

传统方式使用if判断,麻烦并且参数过多需要写很多代码,使用Spring注解

public class User {
    @NotNull(message = "传入姓名不能为NULL")
    @NotEmpty(message = "传入姓名不能为空")
    private String name;
    @Min(value = 1, message = "传入年龄需大于1")
    private Integer age;
    @Length(min = 11, max = 11, message = "手机号需11位")
    private String phone;
}

于此同时,我们还需要在对象入口处,加上注解 @Valid来开启对传入 Student对象的验证

59b2cd740e51ac387cb5dd2c00c7786477cf4fc8.png<a href=@1320w_442h">

为项目配置全局统一异常拦截器来格式化所有数据校验的返回结果

2f3d31fd54e2c08944a28c9644ed37d2dee296d3.png<a href=@1320w_506h">

如上面代码所示,我们全局统一拦截了参数校验异常 MethodArgumentNotValidException,并仅仅只拿到对应异常的详细 Message信息吐给前端,此时返回给前端的数据就清楚得多