【问题标题】:Spring i18n: NoSuchMessageException: No message found under code 'welcome' for locale 'en_US'Spring i18n:NoSuchMessageException:在语言环境“en_US”的代码“欢迎”下找不到消息
【发布时间】:2017-05-16 04:25:18
【问题描述】:

尝试用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 基本名称配置为:

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,我不知道这个问题是怎么回事,谁能帮帮我?

【问题讨论】:

  • 是因为找不到properties文件,根据properties文件结构,application.yml应该是这样的:spring.messages.basename: i18n/messages/messages
  • spring.messages.basename: i18n/messages/messages 解决了您的问题吗?你应该回答你的问题并接受它

标签: spring spring-mvc spring-boot internationalization


【解决方案1】:

是因为找不到properties文件,根据properties文件结构,application.yml应该是这样的:spring.messages.basename: i18n/messages/messages

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2013-02-10
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多