尝试使用spring i18n实现我的应用程序的国际化,但是当调用messageSource.getMessage()时,它会抛出 noSuchMessageException 异常,详细信息如下:
detailMessage = "No message found under code 'welcome' for locale 'en_US'."
cause = org.springframework.context.NoSuchMessageException: No message found under code 'welcome' for locale 'en_US'.
并且,在application.yml中,spring i18n basename配置为:
spring:
messages:
basename: i18n/messages
另外,在目录:src / main / resources中,有三个属性:
resources
- i18n.messages
- messages.properties
- messages_en_US.properties
- messages_zh_CN.properties
在控制器中,我试图通过调用getMessage(" key“,null,locale)来获取消息,下面是相关的代码:
import org.springframework.context.MessageSource;
@Autowired
private MessageSource messageSource;
Locale locale = LocaleContextHolder.getLocale();
String str1 = messageSource.getMessage("welcome", null, locale);
在属性文件中,我为key- welcome 设置了值。
为了实现国际化,我想,它应该与上面的配置和代码配合得很好,但是我总是得到noSuchMessageException,我不知道这个问题是怎么回事,有人可以帮帮我吗?
答案 0 :(得分:0)
由于找不到属性文件,基于属性文件的结构,application.yml应该类似于:spring.messages.basename:i18n / messages / messages