Как расширить шаблоны в плитках? - PullRequest
1 голос
/ 16 марта 2011

У меня есть один главный шаблон с общей рамкой макета сайта: "/WEB-INF/jsp/common.jsp" Тогда у меня есть еще один шаблон, который обычно будет использоваться для другого числа страниц с похожим макетом:

Шаблон функций в основном определяет содержимое атрибута "content" шаблона "master".

Я попытался решить эту проблему следующим образом:

<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" />

Есть идеи?

1 Ответ

1 голос
/ 16 марта 2011

Полагаю, вам нужно определения вложенности . Вы можете попробовать что-то вроде этого.

<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>
...