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という名前のタイル定義内で使用されるintroという名前のタイル定義が必要です。

私の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" />

私がやろうとしていることが実行可能であるかどうか(本当に一般的なシナリオに聞こえるので、そうだと思います)、もしそうなら、私が間違っていることは何ですか?

4

1 に答える 1

3

カスケードに追加cascade="true"し、ネストされたタイルに追加します。put-attributesheaderquickSummarypreamble

ネスト定義に関するドキュメントも参照してください。

于 2012-10-30T16:37:17.850 に答える