我有瓷砖问题
我有一个模板(mainLayout),它基本上执行以下操作:
<html>
<body>
...
<jsp:include page="/services" />
...
</body>
</html>
该 url/services
由使用 Tiles3 的 Spring 控制器提供服务。/services
url 使用了不同的布局(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>
我希望这足够清楚。
谢谢