복붙노트

[SPRING] @valid를 사용하여 스프링 검증

SPRING

@valid를 사용하여 스프링 검증

속성 파일의 오류 메시지로 일부 봄 유효성 검사를 수행하려고합니다. 그러나 모든 예제에서 값은 하드 코드되거나 속성 파일에서 가져온 것이지만 유효성 검사기 클래스를 사용하여 값을 검색하는 것으로 보입니다.

내 설정이 약간 다릅니다. 내 requestmapping에서 @Valid 주석을 사용하고 있으며 @Valid 클래스는 @NotNull 등을 사용합니다. 사람들이 @NotNull (message = "blablabla")을 수행하는 예제를 보았습니다. 그러나 그것은 또한 하드 코딩되어 있으며, 메시지를 속성 파일에 저장하여 즉시 편집 할 수 있으므로 나중에 i18n을 쉽게 구현할 수 있습니다.

이것을 달성하는 방법에 대한 모든 의견을 주시면 감사하겠습니다.

해결법

  1. ==============================

    1.명시적인 Validator와 똑같은 방식으로 작동합니다. MessageSource를 선언하고 .properties 파일에 오류 메시지를 작성합니다. 메시지 코드는 다음과 같이 구성됩니다. constraintName.modelAttributeName.propertyName :

    명시적인 Validator와 똑같은 방식으로 작동합니다. MessageSource를 선언하고 .properties 파일에 오류 메시지를 작성합니다. 메시지 코드는 다음과 같이 구성됩니다. constraintName.modelAttributeName.propertyName :

    publib class Foo {
        @NotNull private String name;
        ...
    }
    

    .

    @RequestMapping
    public String submitFoo(@Valid Foo foo, ...) { ... }
    

    messages.properties:

    NotNull.foo.name=...
    

    MessageSource 선언 :

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value = "messages" />
    </bean>
    
  2. from https://stackoverflow.com/questions/4281165/spring-validation-with-valid-where-how-custom-error-messages by cc-by-sa and MIT license