2012-10-30 86 views
2

我是新來的瓷磚,只是想使他們在以下範圍內的工作 base.jsp嵌套平鋪定義不起作用

...<body id="pageBody"> 
<div id="container"> 
     <tiles:insertAttribute name="intro"/> 
     <tiles:insertAttribute name="supportingText"/> 
     <tiles:insertAttribute name="menu"/> 
</div> 

...

其中intro.jsp是

<div id="intro"> 
    <tiles:insertAttribute name="header" /> 
    <tiles:insertAttribute name="quickSummary" /> 
    <tiles:insertAttribute name="preamble" /> 
</div> 

所以簡單來說,我希望有一個名爲介紹平鋪定義這是一個名爲base.jsp

tile定義內使用

在我的瓷磚 - defs.xml我:

<tiles-definitions> 

<definition name="base" template="/WEB-INF/tiles/base.jsp"> 
    <put-attribute name="title" value="Template"/> 
    <put-attribute name="content" value="/WEB-INF/tiles/header.jsp"/> 
    <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp"/> 
    <put-attribute name="intro" value="intro"/> 
    <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp"/> 
    <put-attribute name="resources" value="/WEB-INF/tiles/resources.jsp"/> 
    <put-attribute name="supportingText" value="/WEB-INF/tiles/supportingText.jsp"/> 
</definition> 

<definition name="intro" template="/WEB-INF/tiles/intro.jsp"> 
    <put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/> 
    <put-attribute name="quickSummary" value="/WEB-INF/tiles/quickSummary.jsp"/> 
    <put-attribute name="preamble" value="/WEB-INF/tiles/preamble.jsp"/> 
</definition> 

所以我跳這會工作和header.jsp中的內容,quickSummary.jsp,preamble.jsp將在呈現的頁面是可用的。

相反,我得到的最終結果:

... </head> <body id="pageBody"> <div id="container"> <div id="intro"> <tiles:insertAttribute name="header" /> <tiles:insertAttribute name="quickSummary" /> <tiles:insertAttribute name="preamble" /> </div> <div id="supportingText"> <tiles:insertAttribute name="content"/> <tiles:insertAttribute name="footer"/> </div> <div id="linkList"> <div id="linkList2">...

在我的春天配置我:如果

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" p:definitions="/WEB-INF/tiles-defs/tiles-defs.xml" /> 
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:basename="views" /> 

任何想法,我試圖做是可行的(聲音真的很常見的情況,所以我想它是),如果是的,我做錯了什麼?

回答

3

添加cascade="true"put-attributes級聯headerquickSummarypreamble嵌套瓷磚。請參見documentation about nesting definitions

+0

完美答案。直接向前,並伴隨着我正在尋找的鏈接... 謝謝斯拉瓦 – Alexandros