Apache Tiles 2.2.2 — распространение значений

<tiles-definitions>
    <definition name="home" template="/WEB-INF/views/home.jsp">
        <put-attribute name="title"       value="My App" />
        <put-attribute name="header"      value="/WEB-INF/views/common/header.jsp" />
        <put-attribute name="menu"        value="/WEB-INF/views/common/nav.jsp" />
        <put-attribute name="footer"      value="/WEB-INF/views/common/footer.jsp" />
    </definition>
</tiles-definitions>

Как передать значение title (Мое приложение) в header.jsp? В заголовке jsp, когда я делаю:

<tiles:insertAttribute name="title" ignore="true" />

ничего не печатается. Когда я делаю то же самое в home.jsp, мое приложение печатается. cascade=true не помогло.


person Community    schedule 05.04.2013    source источник


Ответы (1)


Непонятно, где вы пытались поместить этот cascade=true (при условии, что в вашем вопросе опечатка: он должен быть «каскадным», а не «каскадным»), но следующее работает, как и ожидалось:

плитки.xml:

<tiles-definitions>
    <definition name="home" template="/WEB-INF/views/home.jsp">
        <put-attribute name="title"   value="My App" cascade="true"/>
        <put-attribute name="header"  value="/WEB-INF/views/common/header.jsp" />
        (...)
    </definition>
</tiles-definitions>

home.jsp:

    Title: <tiles:insertAttribute name="title" /> <br/>
    Header: <tiles:insertAttribute name="header" />

header.jsp:

Title in header: <tiles:insertAttribute name="title" />

Результат:

Title: My App
Header: Title in header: My App
person kryger    schedule 05.04.2013
comment
cascaded :P о, лишняя буква «d» испортила мой вечер. :D Хороший улов. - person ; 07.04.2013