KyleWang
发布于 2024-03-10 / 35 阅读
0
0

SpringBoot(六)实体参数校验

SpringBoot(六)

实体参数校验

1、实体类成员变量上添加注解

@NotNull
@NotEmpty
@Email
@Data
public class User {
    @NotNull
    private Integer id;//主键ID
    private String username;//用户名
    @JsonIgnore
    private String password;//密码

    @NotEmpty
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;//昵称

    @NotEmpty
    @Email
    private String email;//邮箱
    private String userPic;//用户头像地址
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}

2、接口方法的实体参数上添加@Validated注解

@PutMapping("/update")
public Result<String> update(@RequestBody @Validated User user){

    userService.update(user);
    return Result.success();
}

3、结果

{
    "id":2,
    "username":"wangba",
    "nickname":"wba",
    "email":"wacc"
}

{
    "code": 1,
    "message": "Validation failed for argument [0] in public com.itheima.pojo.Result<java.lang.String> com.itheima.controller.UserController.update(com.itheima.pojo.User): [Field error in object 'user' on field 'email': rejected value [wacc]; codes [Email.user.email,Email.email,Email.java.lang.String,Email]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.email,email]; arguments []; default message [email],[Ljavax.validation.constraints.Pattern$Flag;@4708343e,.*]; default message [不是一个合法的电子邮件地址]] ",
    "data": null
}


评论