1

웹 응용 프로그램에서 주석을 사용하여 오류를 처리합니다. 모든 것이 잘 작동하고 "메시지"매개 변수를 통해 사용자 지정 메시지를 사용할 수 있습니다.스프링 MVC 사용자 정의 오류 및 국제화

@Digits(fraction = 0, integer = 3, message="my custom error message...") 
private String price; 

이제는이 메시지를 .properties 파일로 국제화하려고 시도하고 있습니다. 그러나 나는 확실히 뭔가를 놓치고 작동시키지 못합니다.

내 스프링 설정 :

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <beans:property name="basenames" value="classpath:i18n/messages, classpath:i18n/errors" /> 
    <beans:property name="defaultEncoding" value="UTF-8" /> 
</beans:bean> 

<beans:bean name="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 
    <beans:property name="validationMessageSource"> 
     <beans:ref bean="messageSource" /> 
    </beans:property> 
</beans:bean> 

<beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver"> 
    <beans:property name="defaultLocale" value="fr" /> 
</beans:bean> 

나의 새로운 콩 :

@Digits(fraction = 0, integer = 3) 
private String price; 

내 "errors_fr.properties"파일. 나는 이미 모든 것을 시도했다 :

Digits.myBean.myNestedBean.price = my custom error message... 
Digits.myNestedBean.price = my custom error message... 
javax.validation.constraints.Digits.myNestedBean.price = my custom error message... 

나는 봄과 같은 일반적인 메시지를 얻는다. 봄은 내 .properties 파일을 감지하지 못한다. 그런데 디버깅 할 때 위의 메시지 키는 BindingResult 개체에서 찾을 수 있습니다.

무엇이 여기에 있습니까?

"messages_fr.properties"파일에있는 jsp의 메시지가 이미 국제화되어 있고 제대로 작동합니다.

답변

5

나는 내 응용 프로그램에서 비슷한 문제가 있었는데, 이것이 당신을 도울 수 있기를 희망합니다.

  1. 이 안에 오류 메시지 키를 참조하십시오 주석의
  2. 파일 ValidationMessages.properties의 주석에 의해 언급 된 오류 메시지를 정의에이 스레드, http://forum.springsource.org/showthread.php?73240-Roo-JSR-303-Validations-and-Localization에서 설명하고있는 바와 같이

    , 당신은 필요 중괄호 :이 도움이

@Digits(fraction = 0, integer = 3, message="{message.key}")

희망.

+0

예, 정말 옳습니다! 이미 클래스 패스에 ValidatorMessages.properties를 넣으려고했지만 작동하지 않습니다. 귀하의 링크를 읽은 후 나는 왜 그것을 이해 : 나는 그것을 ValidatorMessages_fr.properties라고 불렀다. 그리고 나는 그것을 "ValidatorMessages_fr_FR.properties"라고 명명해야했다. 감사합니다 ! 그러나, 당신의 대답을 확인하기 전에, 내가 알고 싶었어, "validatorMessages_fr_FR.properties"대신에 "errors_fr.properties"파일을 호출하는 방법이 있나? –

+0

이 글을 쓰지는 않았지만, 스레드 http://forum.springsource.org/showthread.php?86237-JSR-303-Validation-Spring-MVC-and-messages-properties의 마지막 코멘트는 메시지를 messages.properties 파일에 보관합니다. 이게 너에게 효과가 있다면 나에게도 알려줘. :) – vincentks

+0

예, 작동하는 것 같습니다! 그러나 xml 구성 만 사용하는 것이 좋을 것입니다. (그리고 왜 나는 초기 구성이 작동하지 않는지 이해하지 못합니다.) 그러나 이것은 다른 문제입니다. 감사 ! –

관련 문제