Spring的ReloadableResourceBundleMessageSource没有找到属性文件

时间:2012-09-03 01:12:00

标签: spring spring-mvc spring-roo resourcebundle properties-file

我在WEB-INF / i18n目录下有两个文件:

  • application.properties
  • messages.properties

我已按如下方式正确配置了我的ReloadableResourceBundleMessageSource bean(spring mvc):

<bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="messageSource" p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application"
        p:fallbackToSystemLocale="false"/>

然而我从Spring mvc得到了这个:

2012-09-03 02:59:45,911 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - Loading properties [application.properties]
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [WEB-INF/i18n/application_fr] - neither plain properties nor XML
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - Loading properties [messages.properties]
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [WEB-INF/i18n/messages_fr] - neither plain properties nor XML

任何人都可以提出建议吗?我可以将属性文件移动到类路径并相应地更改我的配置,但我宁愿了解发生了什么。

1 个答案:

答案 0 :(得分:1)

在日志消息中,它说:application_fr

注意_fr。 这意味着它试图寻找application.properties(application_fr.properties)的法语版本。 如果它找不到法语属性,它应该回退到默认值(application.properties),所以仍然可以找到你的道具。 它寻找法国道具的原因是你应用程序中某处的区域设置。可以来自浏览器,JVM,应用程序。

您可以尝试添加以下内容,以强制语言环境为英语:

<bean class="org.springframework.web.servlet.i18n.FixedLocaleResolver" p:defaultLocale="en"/>