Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring可重载ResourceBundleMessageSource VS ResourceBundleMessageSource_Java_Spring Mvc - Fatal编程技术网

Java Spring可重载ResourceBundleMessageSource VS ResourceBundleMessageSource

Java Spring可重载ResourceBundleMessageSource VS ResourceBundleMessageSource,java,spring-mvc,Java,Spring Mvc,您好,我正在尝试在我的Spring MVC web应用程序中配置消息源 我目前已使用ReloadableResourceBundleMessageSource运行它,但无法使用ResourceBundleMessageSource运行它。我更愿意使用ResourceBundleMessageSource,因为我不需要重新加载功能,ResourceBundleMessageSource的效率稍微高一点 在我的rootApplicationContext中,我定义了如下bean &l

您好,我正在尝试在我的Spring MVC web应用程序中配置消息源

我目前已使用ReloadableResourceBundleMessageSource运行它,但无法使用ResourceBundleMessageSource运行它。我更愿意使用ResourceBundleMessageSource,因为我不需要重新加载功能,ResourceBundleMessageSource的效率稍微高一点

在我的rootApplicationContext中,我定义了如下bean

        <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="/resources/locale/messages" />
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>

    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

    <bean id="handlerMapping"
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <ref bean="localeChangeInterceptor" />
        </property>
    </bean>

这很好用。

但只要我换成

<bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="/resources/locale/messages" />
        <property name="defaultEncoding" value="UTF-8"/>
</bean>

应用程序中断,但出现以下异常:

12:35:57433错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default host].[SpringJAXWS].[jsp]] (http-localhost-127.0.0.1-8080-1)Servlet jsp的Servlet.service() 引发异常:org.apache.tiles.util.TilesIOException:jspeException 包括路径“/jsp/views/layout/top.jsp”。在 org.apache.tiles.servlet.context.ServletUtil.wrapServletException(ServletUtil.java:241) [tiles-servlet-2.2.2.jar:2.2.2] org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:105) [tiles-jsp-2.2.2.jar:2.2.2]

救命啊

整个项目代码可在GITHUB上获得

下面是所有感兴趣的人的整个堆栈跟踪。

ResourceBundleMessageSource使用不同的格式传递basename值

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="resources.locale.messages" />
    <property name="defaultEncoding" value="UTF-8"/> 


您是否检查了磁贴配置?它可能与TileViewResolverPlease相关,请发布完整的堆栈跟踪,而不是代码段。