我有一个主模板,它具有一般的网站布局框架:“/ WWE-INF / jsp / common.jsp” 然后我有另一个模板,通常用于具有类似布局的另一个页面:“/ WWE-INF / jsp / feature / common.jsp”
功能模板基本上定义了“主”模板的属性“内容”的内容。
我试图通过以下方式解决这个问题:
<definition name="product.common" template="/WEB-INF/jsp/common.jsp">
<put-attribute name="content" value="/WEB-INF/jsp/features/common.jsp" />
</definition>
<definition name="features/index" extends="product.common">
<put-attribute name="title" value="Features" />
<put-attribute name="rightContent" value="/WEB-INF/jsp/features/index.jsp" />
</definition>
但这不起作用。我在堆栈跟踪中收到以下错误消息:
org.apache.tiles.template.NoSuchAttributeException:找不到属性'rightContent'。
但是功能模板确实有以下内容:
<tiles:insertAttribute name="rightContent" />
有什么想法吗?
答案 0 :(得分:1)
我猜你需要的是nesting definitions。你可以尝试这样的事情。
<definition name="features.common" template="/WEB-INF/jsp/features/common.jsp">
</definition>
<definition name="product.common" template="/WEB-INF/jsp/common.jsp">
<put-attribute name="content" value="features.common" />
</definition>
<definition name="features/index" extends="product.common">
<put-attribute name="title" value="Features" />
<put-attribute name="rightContent" value="/WEB-INF/jsp/features/index.jsp" />
</definition>