ITEEDU

Struts Gossip: 使用JSP管理模版资源

您可以在JSP页面中直接定义管理版面配置资源,这样的作法比较简单,且可以藉由重新定义来达到再用定义档的目 的,使用上更有弹性,例如我们可以这么定义一个JSP页面来管理版面配置资源:
definition1.jsp
<%@page contentType="text/html; charset=Big5"%> 
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<tiles:definition id="myLayout" page="/tiles/myLayout.jsp">
<tiles:put name="title" value="Tiles范例" />
<tiles:put name="header" value="/tiles/header.jsp" />
<tiles:put name="menu" value="/tiles/menu.jsp" />
<tiles:put name="footer" value="/tiles/footer.jsp" />
<tiles:put name="body" value="/tiles/body.jsp" />
</tiles:definition>
要使用这个JSP定义档,可以使用include的方式来达到重复使用的目的,例如:
test.jsp
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%> 
<%@include file="/tiles/definition1.jsp"%>
<tiles:insert beanName="myLayout" flush="true"/>
读取页面时,Tiles会建立一个定义文件对象,id为对象的名称,而之后我们使用beanName来指定定义文件对象的名称。

如果您要在某个页面中重新定义内容网页指向的位置,可以重新定义某些属性值,例如:
test.jsp
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%> 
<%@include file="/tiles/definition1.jsp"%>
<tiles:insert beanName="myLayout" flush="true">
<tiles:put name="title" value="Tiles范例二" />
<tiles:put name="header" value="/tiles/header2.jsp" />
</tiles:insert>
也可以不经由定义档而直接使用某个Layout页面,例如:
test.jsp
<%@page contentType="text/html; charset=Big5"%> 
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%>
<tiles:insert page="/tiles/myLayout.jsp" flush="true">
<tiles:put name="title" value="Tiles范例" />
<tiles:put name="header" value="/tiles/header.jsp" />
<tiles:put name="menu" value="/tiles/menu.jsp" />
<tiles:put name="footer" value="/tiles/footer.jsp" />
<tiles:put name="body" value="/tiles/body.jsp" />
</tiles:insert>

这么作的好处是简单方便,可以直接使用Layout页面而无法额外定义管理档案,而缺点就是无法再重用这个页面的定义内容。