我正在尝试在新的Spring MVC应用程序中进行基本本地化。我已经尝试了我能想到的一切,但总是会遇到以下异常,无论我做什么。任何帮助将不胜感激......
我已经尝试将属性文件添加到每个目录但它仍然给我一个错误。一旦我开始工作,我将系统地删除额外内容。
例外:
07/13/2012 21:06:00.178 [DEBUG] [org.springframework.context.support.ReloadableResourceBundleMessageSource] No properties file found for [messages] - neither plain properties nor XML
07/13/2012 21:06:00.178 [DEBUG] [org.springframework.context.support.ReloadableResourceBundleMessageSource] No properties file found for [messages_en] - neither plain properties nor XML
07/13/2012 21:06:00.179 [DEBUG] [org.springframework.context.support.ReloadableResourceBundleMessageSource] No properties file found for [messages_en_US] - neither plain properties nor XML
07/13/2012 21:06:00.182 [ERROR] [org.springframework.web.servlet.tags.MessageTag] No message found under code 'test.testMessage' for locale 'en_US'.
javax.servlet.jsp.JspTagException: No message found under code 'test.testMessage' for locale 'en_US'.
这是JSP条目(fmt:message只显示??? test.testMessage ???而spring:消息爆炸):
<h2><fmt:message key="test.testMessage" />!</h2>
<h2><spring:message code="test.testMessage" />!</h2>
这是compare-servlet.xml文件中的配置:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="messages" />
</bean>
这是战争结构(注意我几乎在每个级别都添加了messages.properties):
messages.properties
src
messages.properties
main
messages.properties
java
...
resources
messages.properties
webapp
index.jsp
messages.properties
WEB-INF
comparison-servlet.xml
web.xml
messages.properties
jsp
messages.properties
compare.jsp
globalIncludes.jsp
classes
messages.properties
resources
messages.properties
test
...
任何想法为什么它找不到绝对存在的文件?我是否需要明确设置类路径的内容?
答案 0 :(得分:4)
尝试将messages.properties放在任何文件夹内的WEB-INF目录下,并使用basename
属性设置路径。
例如:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/i18n/messages" />
</bean>
请参阅Javadoc here。
答案 1 :(得分:0)
问题原来是war文件本身。当属性文件被复制到目标目录并显示为好像它们包含在构建中时,maven pom文件被设置为从构建的工件中显式排除属性文件。
一旦我从我的pom文件中删除它,一切都开始正常工作:
<configuration>
<packagingExcludes>**/*.properties</packagingExcludes>
</configuration>