validator 예제

둘째, 전역 WebBindingInitializer에서 setValidator(유효성 검사기)를 호출할 수 있습니다. 이렇게 하면 모든 @Controller 클래스에서 유효성 검사기 인스턴스를 구성할 수 있습니다. 이것은 스프링 MVC 네임스페이스를 사용하여 쉽게 달성 할 수 있습니다 : 마지막으로, 그리고 이 장의 초점에서 조금 벗어난 경우, Spring의 MVC 웹 프레임 워크를 사용하는 사람들을 위해, 데이터 바인딩 컨트롤러와 함께 PropertyEditorRegistrars를 사용하여 (예 : SimpleFormController)는 매우 편리할 수 있습니다. initBinder(.) 메서드의 구현에 PropertyEditorRegistrar를 사용하는 예제아래 찾기: Bean 유효성 검사 API에 의해 정의된 제약 조건 외에도 최대 절전 모드 유효성 검사기는 아래에 나열된 몇 가지 유용한 사용자 지정 제약 조건을 제공합니다. Spring MVC 프레임워크는 기본적으로 JSR-303 사양을 지원하며 JSR-303을 추가하는 것만 있으면 스프링 MVC 응용 프로그램에서 구현 종속성입니다. Spring은 또한 @Validator 개의 어구와 BindingResult 클래스를 제공하여 컨트롤러 요청 처리기 메서드에서 Validator 구현에 의해 발생하는 오류를 얻을 수 있습니다. JSR-303 유효성 검사기에서 이 클래스의 인스턴스의 유효성을 검사하면 이러한 제약 조건이 적용됩니다. 데이터 바인딩 및 유효성 검사에 대해 이야기했습니다. 유효성 검사 오류에 해당하는 메시지를 입력하는 것은 마지막으로 논의해야 합니다. 위에서 보여 드린 예제에서는 이름과 나이 필드를 거부했습니다. MessageSource를 사용하여 오류 메시지를 출력하려는 경우 필드를 거부할 때 제공한 오류 코드(이 경우 이름 및 나이)를 사용하여 오류를 출력합니다. ValidateUtils 클래스를 사용하여 직접 또는 간접적으로 호출할 때 Errors 인터페이스에서 다른 거부 메서드 중 하나를 사용하여 기본 구현은 전달한 코드뿐만 아니라 여러 개의 코드를 등록합니다. 추가 오류 코드.

등록하는 오류 코드는 사용되는 MessageCodesResolver에 의해 결정됩니다. 기본적으로 DefaultMessageCodesResolver가 사용되며, 예를 들어 사용자가 제공한 코드로 메시지를 등록할 뿐만 아니라 거부 메서드에 전달한 필드 이름을 포함하는 메시지도 사용됩니다. 따라서 rejectValue(„나이”, „too.darn.old”)를 사용하여 필드를 거부하는 경우, too.darn.old 코드 외에도 Spring도 너무 등록합니다.darn.old.age 및 too.darn.old.age.int (그래서 첫 번째는 필드 이름을 포함하고 두 번째는 필드 이름을 포함합니다. 필드); 이는 개발자가 오류 메시지 등을 타겟팅하는 데 도움이 되는 편의성으로 수행됩니다.