gpt4 book ai didi

java - 读取以 utf-8 编码的 ValidationMessages

转载 作者:行者123 更新时间:2023-11-30 08:07:53 26 4
gpt4 key购买 nike

如何更改验证消息的资源包?默认值是将我的 ValidationMessages.properties 读取为 ISO-8859-1(我猜),但它是 UTF-8。我试过这个:

@Configuration
@EnableWebMvc
@ComponentScan
public class ApplicationConfiguration extends WebMvcConfigurerAdapter{

@Bean( name = "messageSource" )
public ReloadableResourceBundleMessageSource validationMessageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("ValidationMessages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}

@Bean
public LocalValidatorFactoryBean validator() {
LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean();
validatorFactoryBean.setValidationMessageSource(validationMessageSource());
return validatorFactoryBean;
}

@Override
public Validator getValidator() {
return validator();
}

无论我在这里放什么,Hibernate 都不会使用它来获取消息。有小费吗?我正在使用 Hibernate 5 和 Spring 4。

最佳答案

.properties 文件是按照 ISO-8859-1 编码(又名 Latin-1)读取的规范。(参见 https://en.wikipedia.org/wiki/.propertiesHow to use UTF-8 in resource properties with ResourceBundle )。因此您需要指定 unicode 字符,而不是将文件保存为 UTF-8

要将 LocalValidatorFactoryBean 与 Hibernate 一起使用,您需要将其连接到 JPA,否则它将使用默认值。

将以下属性添加到 LocalContainerEntityManagerFactoryBean 的 JPA 属性中。

<entry key="java.persistence.validation.factory" value-ref="validator" />

添加它将使其使用 Spring Configured 实例。

关于java - 读取以 utf-8 编码的 ValidationMessages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com