我有一些Spring驗證表單,並且所有來自javax.validation.constraints的個性化messeges似乎都使用了錯誤的編碼。Spring使用錯誤的編碼來定製驗證消息
讓我們此作爲一個例子:
@NumberFormat(style=Style.NUMBER)
@NotNull
private BigDecimal maintenanceCosts;
用含有
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="defaultEncoding" value="UTF-8" />
<property name="basenames">
<list>
<value>classpath:messages</value>
<value>classpath:ValidationMessages</value>
</list>
</property>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="en" />
</bean>
applicationContext.xml文件而一個ValidationMessage_en.properties以UTF-8編碼和標記,以便(在Eclipse與右擊,屬性)與文字:
javax.validation.constraints.NotNull.message =該字段不能爲空
我想用正確的編纂本地化的字符串顯示thouse的消息,所以我說的UTF-8文件ValidationMessages_ru.properties有:
javax.validation.constraints.NotNull.message = Это поленеможетбыть пустым
但該消息顯示此消息: ÐÑ,опоРÐμнÐμможÐμÑ,d±Ñ<Ñ,ьпуÑÑ,Ñ<м
在另一方面I具有能夠與正確的編碼來定製彈簧管理錯誤消息。但JSR303文本似乎有不同的表現。
您是否確定該屬性文件是UTF-8,並且Eclipse並非自動編碼非ASCII字符?您是否在普通文本編輯器中檢查了該文件? –
我用記事本++來做 – borjab
好吧,請嘗試[this](http://stackoverflow.com/a/20912549/2217862)配置。它可能與您的問題沒有關係,但只是爲了確保它不是配置問題。你使用的是什麼版本的Spring和Hibernate Validator? –