2014-01-13 4 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>