2

我正在尝试集成 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>

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

4

1 回答 1

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'>
于 2013-08-17T10:32:14.977 回答