2014-01-13 2 views
0

При определении определения или атрибута плитки вы можете ссылаться на другое определение или атрибут без наследования?В Tiles 2, есть ли способ ссылаться на другое определение или атрибут без прямого наследования?

У меня есть все виды JSP-фрагментов, CSS и JavaScript, которые считаются «общими». Они, конечно, не нужны для каждой страницы, и, таким образом, наследование напрямую не похоже на то, что оно будет работать.

Пример:

<tiles-definitions> 
    <definition name="currentBodyDefinition" template="[...specific body template...]" extends="Components"> 
     <!-- if it's not already defined within Components, add it here --> 
    </definition> 

    <definition name="page" extends="pageTemplate"> 
     <put-attribute name="body" value="currentBodyDefinition" /> 
     <put-attribute name="scripts" value="[...???...]" /> <!-- can I reference another definition(s) or attribute(s) here??? --> 
     <put-attribute name="styles" value="[...???...]" /> <!-- can I reference another definition(s) or attribute(s) here??? --> 

    </definition> 
</tiles-definitions> 

ответ

0

Я думаю, что вы можете сделать что-то вроде этого:

<definition name="layout" page="/WEB-INF/tiles/layouts/layout.jsp"> 
     <put name="title" type="string" value="${title}"/> 
     <put name="header" type="definition" value="${header}"/> 
     <put name="content" type="definition" value="${content}"/> 
    </definition> 

    <definition name="headerDef" page="/WEB-INF/tiles/header.jsp"> 
     <put name="headerText" type="string" value="Header String"/> 
    </definition> 

    <definition name="contentDef" page="/WEB-INF/tiles/layouts/contentPage.jsp"> 
     <put name="searchPanel" type="definition" value="panelDef"/> 
     <put name="somePage" type="page" value="/WEB-INF/tiles/somePage.jsp"/> 
    </definition> 

    <definition name="page" extends="layout"> 
     <put name="title" value="Some Title String"/> 
     <put name="header" value="headerDef"/> 
     <put name="content" value="contentDef"/> 
    </definition>