采用Tiles:Insert标签创建复合式网页

Tiles标签库的tiles:insert标签和JSP include指令具有相同的功能,也能把其他的JSP页面插入到当前页面中。例如,以下两条语句的作用是相同的:

<ccid_nobr>

<ccid_code><jsp:include page="indexContent.jsp"/>
<tiles:insert page="indexContent.jsp" flush="true"/></ccid_code>
</ccid_nobr>

    <tiles:insert>标签的page属性指定被插入的JSP文件,flush属性的可选值包括true和false,当flush属性为true,表示在执行插入操作之前,先调用当前页面的输出流的flush()方法。 </tiles:insert>

    提示:本节介绍的 tilestaglibs应用的源程序位于配套光盘的sourcecode/tilestaglibs/version3/tilestaglibs目录 下。如果要在Tomcat上发布这个应用,只要把version3目录下的整个tilestaglibs子目录拷贝到<catalina_home>/webapps目录下即可。 </catalina_home>

    以下是在tilestaglibs应用中使用<tiles:insert>标签的步骤。 </tiles:insert>

    (1)安装Tiles标签库所需的文件
    在Struts的下载软件中包含了运行Tiles标签库所需的文件。如果Web应用中使用了Tiles标签库,以下文件必须位于WEB-INF/lib目录中:
    ·struts.jar
    ·commons-digester.jar
    ·commons-beanutils.jar
    ·commons-collections.jar
    ·commons-logging.jar

    此外,应该把Tiles标签库的定义文件struts-tiles.tld拷贝到WEB-INF目录下。

    (2)在web.xml文件中配置如下<taglib>元素: </taglib>

<ccid_nobr>

<ccid_code><taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib></ccid_code>
</ccid_nobr>

    (3)创建index.jsp和product.jsp文件
    修 改16.2节的例程16-8(index.jsp)和例程16-9(product.jsp),在index.jsp和product.jsp文件的开 头,通过%@ taglib指令引入Tiles标签库,然后把源代码中的JSP include指令改为tiles:insert标签。例程16-10和例程16-11分别为修改后的index.jsp和product.jsp文件。

    例程16-10 ndex.jsp

<ccid_nobr>

<ccid_code><%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<html>
<head>
<title>TilesTaglibs Sample</title>
</head>
<body >
<%-- One table lays out all of the content for this page --%>
<table width="100%" height="100%">
<tr>
<%-- Sidebar section --%>
<td width="150" valign="top" align="left" bgcolor="#CCFFCC">
<tiles:insert page="sidebar.jsp" flush="true"/>
</td>
<%-- Main content section --%>
<td height="100%" width="*">
<table width="100%" height="100%">
<tr>
<%-- Header section --%>
<td valign="top" height="15%">
<tiles:insert page="header.jsp" flush="true"/>
</td>
<tr>
<tr>
<%-- Content section --%>
<td valign="top" height="*">
<tiles:insert page="indexContent.jsp" flush="true"/>
</td>
</tr>
<tr>
<%-- Footer section --%>
<td valign="bottom" height="15%">
<tiles:insert page="footer.jsp" flush="true"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html></ccid_code>
</ccid_nobr>

    例程16-11 product.jsp

<ccid_nobr>

<ccid_code><%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<html>
<head>
<title>TilesTaglibs Sample</title>
</head>
<body >
<%-- One table lays out all of the content for this page --%>
<table width="100%" height="100%">
<tr>
<%-- Sidebar section --%>
<td width="150" valign="top" align="left" bgcolor="#CCFFCC">
<tiles:insert page="sidebar.jsp" flush="true"/>
</td>
<%-- Main content section --%>
<td height="100%" width="*">
<table width="100%" height="100%">
<tr>
<%-- Header section --%>
<td valign="top" height="15%">
<tiles:insert page="header.jsp" flush="true"/>
</td>
<tr>
<tr>
<%-- Content section --%>
<td valign="top" height="*">
<tiles:insert page="productContent.jsp" flush="true"/>
</td>
</tr>
<tr>
<%-- Footer section --%>
<td valign="bottom" height="15%">
<tiles:insert page="footer.jsp" flush="true"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html></ccid_code>
</ccid_nobr>

    从例程16-10和例程16-11可以看出,用tiles:insert标 签取代JSP include指令来创建复合式页面,代码仅有稍微的差别,两者的利弊也很相似。单纯使用tiles:insert标签来创建复合式页面,还没有充分发挥 Tiles框架的优势。

你可能感兴趣的:(html,tomcat,Web,jsp,struts)