0

我有瓷砖问题

我有一个模板(mainLayout),它基本上执行以下操作:

<html>
<body>
   ...
   <jsp:include page="/services" />
   ...
</body>
</html>

该 url/services由使用 Tiles3 的 Spring 控制器提供服务。/servicesurl 使用了不同的布局(rawLayout),它只输出一个 jsp 。

问题是代码正在生成 stackoverflow 错误。实际上,当尝试/services使用原始布局呈现 url 时,Tiles 实际上正在切换到 mainLayout。

我调试了 Tiles,即使定义是正确的(rawLayout),该BasicTilesContainer::getAttributeContext方法也会切换回原始布局(mainLayout)。似乎 Tiles 没有使用定义中的模板,而是从执行堆栈中获取它。

我的瓷砖定义:

<definition name="main" template="/WEB-INF/tiles/layout/mainLayout.jsp">
    <put-attribute name="content" value=""/>
</definition>
<definition name="full" template="/WEB-INF/tiles/layout/fullLayout.jsp">
    <put-attribute name="content" value=""/>
</definition>

<definition name="services" extends="full">
    <put-attribute name="content" value="/WEB-INF/jsp/services.jsp" />
</definition>

我希望这足够清楚。

谢谢

4

0 回答 0