Использование переменной набора основной библиотеки в плитках Apache

У меня есть одна JSP-страница шаблона:

<html>
<head></head>
<body>
    <c:set var="temp" scope="request" value="" />
    <tile:insertAttribute name="header"/>
    <tile:insertAttribute name="body"/>
    <tile:insertAttribute name="footer"/>
</body>
</html>

Мой шаблон XML приведен ниже:

<tiles-definitions>

    <definition name="home" extends="template">
        <put-attribute name="temp" value="home" />
        <put-attribute name="body" value="/WEB-INF/pages/home.jsp" />  
    </definition>

    <definition name="template" template="/WEB-INF/templates/template.jsp">
        <put-attribute name="temp" />
        <put-attribute name="header" value="/WEB-INF/pages/includes/header.jsp" />
        <put-attribute name="body"  />
        <put-attribute name="footer" value="/WEB-INF/pages/includes/footer.jsp" />
    </definition>
<tiles-definitions>

Мой вопрос:

Когда я установил значение "home" в имени "temp" в домашнем определении, я хочу получить это значение "home" на странице заголовка и страницы нижнего колонтитула, поэтому я делаю ${temp}, но не нашел значение "home".

Возможно? Если да, то как?


person Akash Chavda    schedule 19.04.2015    source источник


Ответы (2)


Вы можете использовать tiles для печати атрибута в JSP и установить переменную области запроса или создать переменную области запроса с помощью tile:useAttribute. Например, в первом случае вы можете сделать

<html>
<head></head>
<body>
    <c:set var="temp" scope="request"><tile:getAsString name="temp"/></c:set>
    <tile:insertAttribute name="header"/>
    <tile:insertAttribute name="body"/>
    <tile:insertAttribute name="footer"/>
</body>
</html>
person Roman C    schedule 19.04.2015

Вы смешиваете основные теги Jstl в теге tiles.

Использовать

<tiles:getAsString name="temp" />

вместо

<c:set var="temp" scope="request" value="" />

См. https://tiles.apache.org/framework/tutorial/basic/pages.html

person Darshan Patel    schedule 19.04.2015