Spring i18n:NoSuchMessageException:在代码' welcome'下找不到任何消息对于语言环境' en_US'

时间:2017-01-02 01:14:12

标签: spring spring-mvc spring-boot internationalization

尝试使用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,我不知道这个问题是怎么回事,有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

由于找不到属性文件,基于属性文件的结构,application.yml应该类似于:spring.messages.basename:i18n / messages / messages