在通过post进行用户创建时(其他任何请求),可以对参数进行校验,方式是在要校验的属性上加上注解,
比如要求姓名和密码不能为空:
@NotBlank
private String userName;
@NotBlank
private String password;
随后,会发现验证没有起到任何作用,原因是要想注解的验证起到作用,要在需要验证的地方加上@Valid ,表示在这个地方需要进行参数验证:
@PostMapping("/user")
public User createUser(@Valid @RequestBody User u) {
如果校验发现有参数是不符合规则的,会返回错误(400)而不去执行函数体中内容,如果只是要把错误进行记录,
函数体内容继续执行,可以添加BindingResult ,有了这个参数后,会在验证错误的时候进入到函数体中,继续执行。
public User createUser(@Valid @RequestBody User u, BindingResult erros) {
if (erros.hasErrors()) {
//如果验证有错误则进行输出
erros.getAllErrors().stream().forEach(error->System.out.println(error.getDefaultMessage()));
}
…………
}