Spring 3.1.1 ve Hibernate-validator 4.3.0.Final'i kullanıyorum ve doğrulama mesajlarını ValidationMessages'dan (sınıf yolunda) alan varsayılan MessageInterpolator'ı değiştirmeyle ilgili bir sorun yaşıyorum.Baharda MessageInterpolator
benim bahar messageSource gelen mesajları alacak olan ResourceBundleMessageInterpolator kullanmak istiyorum
benim uygulama context.xml böyle bir şey yaptı:
<bean id="resourceBundleMessageInterpolator"
class="org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator">
<constructor-arg index="0">
<bean class="org.springframework.validation.beanvalidation.MessageSourceResourceBundleLocator">
<constructor-arg index="0" ref="messageSource"/>
</bean>
</constructor-arg>
</bean>
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="messageInterpolator" ref="resourceBundleMessageInterpolator"/>
</bean>
Ve günlüklerinde benim web uygulaması başlattığınızda ben bkz:
11:04:07,402 DEBUG [org.hibernate.validator.internal.engine.ConfigurationImpl] -
Setting custom MessageInterpolator of type
org.springframework.validation.beanvalidation.LocaleContextMessageInterpolator
11:04:07,402 DEBUG [org.hibernate.validator.internal.engine.ConfigurationImpl] -
Setting custom ConstraintValidatorFactory of type org.springframework .validation.beanvalidation.SpringConstraintValidatorFactory
Yani gördüğünüz gibi, bu istediğim ResourceBundleMessageInterpolator değil.
11:08:09,397 DEBUG [org.hibernate.validator.resourceloading.PlatformResourceBundleLocator] -
ValidationMessages not found.
11:08:09,413 DEBUG [org.hibernate.validator.resourceloading.PlatformResourceBundleLocator] -
org.hibernate.validator.ValidationMessages found.
uygulama-context.xml görebileceğiniz gibi ben kullanım MessageSourceResourceBundleLocator istiyorum: Ben sadece bahar mesajı kaynağından, ValidationMessages.properties gelen mesajları değil almak şey doğrulamaya çalıştığınızda O
Sonra LocaleContextMessageInterpolator var ama kullanıldı, neden bilmiyorum PlatformResourceBundleLocator
Herhangi bir fikir var mı?
Cevabınız için çok teşekkürler. Daha önce, yazdığınız gibi setValidationMessageSource ile daha basit bir sürüm kullandım. Davranış, ilk başta tarif ettiğimyle aynıydı. Sorun şu ki, kodumda bir validator = "validator" özniteliğini kaçırdım. Özniteliği ekledim ve çalışıyor. –
Sadece spring-web modülünü kullanırsam, spring-webmvc'i kullanmazsam ne yapmalıyım? –
Açıklama eki konfigürasyonunda validator ref'in nerede kullanılacağı – karthi