Spring REStful Web 服务@initbinder 不允许其他验证

Spring REStful web service @initbinder not allowing other validation

我有以下 Rest 控制器:

 @RestController
 public class DocumentSearchController_global 
{
@InitBinder//("TestCustomAnotation")
protected void initBinder(WebDataBinder binder) {
   binder.setValidator(new ChekAtleastOneValueValidator());

}

@RequestMapping(value = "/validator", method = RequestMethod.POST, produces = { MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE })
protected DocumentSearchResponse validatortest(@Valid @RequestBody TestCustomAnotation objDMSRequest,  Errors e, BindingResult br) throws AppException
{
    if(br.hasErrors())
        System.out.println("ERRor");
  if (e.hasErrors())
  {
      System.out.println("Got Error:      "+ e.getFieldError());
  }
    DocumentSearchResponse objDocSearchResponse =  null;


    return objDocSearchResponse;
    }




@ExceptionHandler
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ResponseBody
public String handleMethodArgumentNotValidException(
        MethodArgumentNotValidException  error) {
    System.out.println("ERROR-->>>>>>>>>>>>>>>>>>>>>>>>" +error.getMessage());
    return "Bad request: " + error.getMessage();
}
}

这是请求将被投射到的 bean:

        public class TestCustomAnotation
        {
        @ValidDocumentModifiedDate({"7Days", "30Days","60Days"})
        String docModifiedDate;
        @NotNull
        String objectId;
        @NotNull
        String jobId;

        Setter and GEtter
        }
  1. 在控制器中,如果我指定 binder.setValidator(new ChekAtleastOneValueValidator());,控制器将只转到 ChekAtleastOneValueValidator 它不会检查 @notnull @ValidDocumentModifiedDate`
  2. 如果我没有 binder.setValidator(new ChekAtleastOneValueValidator()); 那么控件将检查 @notnull@ValidDocumentModifiedDate 验证但未验证 ChekAtleastOneValueValidator.

我的问题是:Spring有没有办法使用Spring验证、自定义注解和@notnull注解 并获取所有验证的所有错误或 spring 允许仅使用 Spring 个验证器?

其实问题本身就错了。我得到了答案,我使用 Spring 验证器 class 来验证所有传入的请求,然后使用 @validated 代替 @valid。我不再根据请求使用注释,而是让​​ class 成为 POJO。就这样问题解决了