嵌套切片定义不起作用

时间:2012-10-30 13:47:29

标签: spring-mvc tiles2

我是瓷砖新手,只是希望让它们在以下范围内工作 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>

所以简单来说,我希望有一个名为intro的tile定义,它将在名为base.jsp的tile定义中使用

在我的tiles-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" />

任何想法,如果我想做的是可行的(听起来很常见的情况,所以我猜它是),如果是,我做错了什么?

1 个答案:

答案 0 :(得分:3)

cascade="true"添加到put-attributes,以便将headerquickSummarypreamble级联到嵌套切片。

另见documentation about nesting definitions