내가 문자열 ID의 "참조 목록"에 대해 검증하고자 빈에서 문자열-아이디의 목록을 람 시간에 을 확인하십시오. (런타임에 데이터베이스에서 읽거나 생성 된 이러한 참조 ID). 이것은 웹 응용 프로그램 (Struts)이며 이것이 왜 가능하지 않은지 궁금합니다.하지만 백만 건의 ob 웹 응용 프로그램에 널리 퍼져있는 유스 케이스입니다. 어떻게 이것을 해결합니까?JSR303 유효성 검사 : 런타임에 객체/컨텍스트 정보를 전달 하시겠습니까?</p> <pre><code>@MyIdListValidator private List<String> idsFromHtmlForm; //These need to be validate against an ID list from DB </code></pre> <p>그래서 나는 모든 유효한 값으로 "참조 목록"을 주입 somewho해야 :
validator.validate(form);
방법 (컨텍스트 개체)에 임의의 정보를 주입하거나 어떤 방법이 있는가?
그리고 개체를이 방법으로 검증되는 전체에 대한 액세스를 얻을 수있는 가장 쉬운 방법 (!)가 : ConstraintValidator<Date,String>,
주
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
: 내 질문은 클래스 레벨의 검증과 관련이 없습니다가, 속성 자체의 가치뿐만 아니라 전체 개체 (속성이 속한)에 대한 액세스를 얻는 트릭이있는 경우 속성 수준의 유효성 검사가 수행됩니다. (만약 내가 전체 인스턴스에 액세스 할 수/유효성이 클래스는 내가 거기에 데이터를 설정할 수있는 보조 poperty, 지저분하지만 해결책이 될 것입니다).
대단히 감사합니다.