我遇到了这样一个问题,即验证器看不到我在体内传输的数据。
WARN 4088 --- [io-28852-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity<account.entitys.User> account.controllers.Authentication.singUp(account.entitys.User) with 2 errors: [Field error in object 'user' on field 'password': rejected value [null]; codes [NotEmpty.user.password,NotEmpty.password,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.password,password]; arguments []; default message [password]]; default message [must not be empty]] [Field error in object 'user' on field 'lastname': rejected value []; codes [NotEmpty.user.lastname,NotEmpty.lastname,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.lastname,lastname]; arguments []; default message [lastname]]; default message [must not be empty]] ]主计长:
import javax.validation.Valid;
@RequestMapping("/api/auth")
@Controller()
public class Authentication {
ArrayList<User> data = new ArrayList<>();
@PostMapping("signup")
public ResponseEntity<User> singUp(@Valid @RequestBody User user) {
data.add(user);
return new ResponseEntity<>(user, new HttpHeaders(), HttpStatus.OK);
}
}用户:
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;
import javax.validation.constraints.NotEmpty;
@Data
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {
@NotEmpty
private String name;
@NotEmpty
private String lastname;
@NotEmpty
private String email;
@JsonIgnore
@NotEmpty
private String password;
}杰森:
{"name":"John","lastname":"Doe","email":"johndoe@acme.com","password":"secret"}格莱德尔:
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
implementation group: 'org.hibernate', name: 'hibernate-validator', version: '6.1.0.Final'我是一个初学者,我没有足够的经验,这是我第一次遇到这样的问题。如果我不使用验证器,那么一切都正常。
发布于 2022-02-17 06:02:38
尝试创建一个新的实体,比如UserCreateRequest,并将这个验证注释放在这里。然后在注册api的请求正文中调用它
https://stackoverflow.com/questions/71148519
复制相似问题