我是瓷砖新手,只是希望让它们在以下范围 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" />
如果我想做的事情是可行的(听起来很常见,所以我猜是这样),如果是的话,我做错了什么?