gpt4 book ai didi

java - 调用 MessageSource#getMessage 时如何修复 'NoSuchMessageException'

转载 作者:行者123 更新时间:2023-12-02 04:13:35 25 4
gpt4 key购买 nike

我想读取 messages.properties 文件中的属性。但是当我打电话时

messageSource.getMessage("property", null, Locale.getDefault())

我收到 NoSuchMessageException。

我已经尝试将 messages.properties-File 重命名为 messages_de_DE.properties 并使用 Locale.GERMANY,但没有区别。

该文件位于 src/main/resources

这是我的入门类(class):

@SpringBootApplication
public class Start extends SpringBootServletInitializer {

public static void main(final String[] args) {
SpringApplication.run(Start.class, args);
}

@Bean
public MessageSource messageSource() {
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath*:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}

@Bean
public LocalValidatorFactoryBean validator(final MessageSource messageSource) {
final LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
bean.setValidationMessageSource(messageSource);
return bean;
}

}

我做错了什么?

最佳答案

尝试这样的事情:

@Configuration
public class MessageConfig {

private final MessageSource source;
private final MessageSourceAccessor accessor;


@Autowired
public MessageConfig(MessageSource messageSource) {
this.accessor = new MessageSourceAccessor(this.source = messageSource, new Locale("de", "DE"));
}


@Bean
public Validator validator() {
LocalValidatorFactoryBean factory = new LocalValidatorFactoryBean();
factory.setValidationMessageSource(this.source);
return factory;
}

public String get(String msg) {
try {
Assert.hasText(msg, "message code must be not blank");
return this.accessor.getMessage(msg.trim());
} catch (NoSuchMessageException e) {
return '{' + msg + '}';
}
}
}

请使用现有的 MessageSource 并将属性文件放入 /src/main/resources。另外,尝试将消息文件重命名为 messages_de.properties

关于java - 调用 MessageSource#getMessage 时如何修复 'NoSuchMessageException',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56674647/

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