Spring MVC本地化-找不到属性文件



我正在尝试在一个新的SpringMVC应用程序中实现基本的本地化。我已经尝试了我能想到的一切,但无论我做什么,最终总是以以下例外告终。任何帮助都将不胜感激。。。

我已经尝试将属性文件添加到每个目录中,但它仍然会给我一个错误。一旦我开始工作,我会系统地删除额外的内容。

例外:

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:消息只显示??test.testMessage??而spring:消息爆炸):

<h2><fmt:message key="test.testMessage" />!</h2>
<h2><spring:message code="test.testMessage" />!</h2>

以下是我的comparison-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
        ...

知道为什么它找不到一个肯定存在的文件吗?我需要明确地设置关于类路径的内容吗?

尝试将messages.properties放在任何文件夹的WEB-INF目录下,并使用basename属性设置路径。

例如:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/i18n/messages" />
</bean>

请参阅此处的Javadoc。

问题出在war文件本身。当属性文件被复制到目标目录并显示为包含在构建中时,maven pom文件被设置为从构建的工件中显式地排除属性文件。

一旦我从pom文件中删除了这个,一切都开始正常工作:

<configuration>
    <packagingExcludes>**/*.properties</packagingExcludes>
</configuration>

最新更新