我尝试使用spring注释验证rest api的请求体。该项目是使用Spring Boot创建的。 我用@NotNull注释了这个类,用@RequestBody注释了@Valid。在尝试了所有方法后,它没有验证。 有人可以帮我这个吗?
@RestController
public class EmployeeController {
@Autowired
private EmployeeServiceImpl employeeServiceImpl;
@Autowired
private ValidateErrors validateErrors;
@RequestMapping(value = "/register" , method = RequestMethod.POST)
public ResponseEntity<Void> resisterEmployee( @Valid @RequestBody EmployeesVO employees , BindingResult errors) throws EmployeeValidationException {
try {
validateErrors.checkError(errors);
//return new ResponseEntity<Void>(message, HttpStatus.BAD_REQUEST);
}
catch(EmployeeValidationException validationException) {
throw new EmployeeValidationException("2001", "Invalid Input");
}
}
public class EmployeesVO {
@NotNull
@JsonProperty("team_members")
List<TeamMember> employeeList ;
//getters & setters
}
public class TeamMember extends Employees{
@NotNull
private Integer team_member_id;
//getters and setters
}
调试时我可以看到hasErrors()会返回false(无错误)。 请注意,员工类还有2个字段,注释为@NotNull
答案 0 :(得分:0)
您可以使用org.springframework.validation.Errors
代替BindingResult
。
然后,如果存在任何错误,您可以返回带有错误正文的ResponseEntity.badRequest()
。