Tiles 3和Spring 3集成抛出异常

时间:2013-08-17 07:19:00

标签: spring spring-mvc tiles-3

我正在尝试集成Spring 3和Tiles 3,我正在查看页面正常,应用程序工作正常,但它给了我以下错误。 javax.servlet.ServletException: File "/WEB-INF/template/WEB-INF/template/layout.jsp" not found

以下是我的配置文件。

<bean class="org.springframework.web.servlet.view.tiles3.TilesViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.tiles3.TilesView"></property>
    <property name="order" value="0"></property>
</bean>
<bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"
    id="tilesConfigurer">
    <property name="definitions" value="/WEB-INF/tiles.xml"></property>
</bean>
<bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:I18N/messages" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale" value="en" />
</bean>
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/" />
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <property name="paramName" value="lang"></property>
        </bean>
    </mvc:interceptor>
</mvc:interceptors>

这是我的tiles.xml

<tiles-definitions>
<definition name="base.definition"
    template='WEB-INF/template/layout.jsp'>
    <put-attribute name="title" value="" />
    <put-attribute name="header" value="/WEB-INF/tile/header.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="/WEB-INF/tile/footer.jsp" />
</definition>

<definition name="login" extends="base.definition">
    <put-attribute name="title" value="login" />
    <put-attribute name="body" value="/WEB-INF/tile/login.jsp" />
</definition>

这是我的layout.jsp

<body bgcolor="">
<table border="1" cellpadding="2" cellspacing="2" align="center">
    <tr>
        <td height="20%" colspan="1"><tiles:insertAttribute
                name="header" /></td>
    </tr>
    <tr>
        <td width="350"><tiles:insertAttribute name="body" /></td>
    </tr>
    <tr>
        <td height="10%" colspan="1"><tiles:insertAttribute
                name="footer" /></td>
    </tr>
</table>

我在这里做错了什么? 我花了好几个小时,仍然无法弄明白。

1 个答案:

答案 0 :(得分:0)

看看例外:

javax.servlet.ServletException: File &quot;/WEB-INF/template/WEB-INF/template/layout.jsp&quot; not found

Tiles尝试在/ WEB-INF / template / WEB-INF / template中找到“layout.js”。

<definition name="base.definition"
    template='WEB-INF/template/layout.jsp'>

尝试在模板路径前添加“/”:

<definition name="base.definition"
    template='/WEB-INF/template/layout.jsp'>