Struts tiles初体验

1,创建web project

2,定义tiles.xml

内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!DOCTYPE tiles-definitions SYSTEM "C:/JavaDemo/dbDemo/userInfoWeb/WebRoot/WEB-INF/tiles-config_2_1.dtd">

<tiles-definitions>

   <definition name="myapp.homepage" template="/tiles/layout.jsp">

       <put-attribute name="title" value="Tiles tutorial homepage" />

       <put-attribute name="header" value="/tiles/header.jsp" />

       <put-attribute name="menu" value="/tiles/menu.jsp" />

       <put-attribute name="body" value="/tiles/cBody.jsp" />

       <put-attribute name="footer" value="/tiles/footer.jsp" />

    </definition>

   

     <definition name="index" extends="myapp.homepage">

             <put-attribute name="body" value="/Content/indexContent.jsp"/>

    </definition>

   

    <definition name="list" extends="myapp.homepage">

             <put-attribute name="body" value="/Content/listContent.jsp"/>

    </definition>

</tiles-definitions>

红色标记处需要注意:如果不能联网,可以使用本地的dtd进行验证,如果可以联网则使用网络上的tiles-config_2_1.dtd进行验证

3,设定页面布局

tiles中myapp.homepage为默认模板名称,其布局由layout.jsp页面控制。

此次体验的layout.jsp如下:

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="../WEB-INF/struts-tiles.tld" prefix="tiles" %>

<html>

    <head>

       <title><tiles:insertAttribute name="title" /></title>

    </head>

    <body>

       <table width="768px" height="800px" border="2" align="center">

      

           <tr>

              <td colspan="2" align="center" valign="top" width="768px" height="100px" bgcolor="#80ff80">

                  <tiles:insertAttribute name="header" />

              </td>

           </tr>

           <tr>

              <td align="center" width="150px" height="800px" bgcolor="#00ff00">

                  <tiles:insertAttribute name="menu" />

              </td>

              <td align="left" width="618px" height="800px" bgcolor="#ff80c0">

                  <tiles:insertAttribute name="body" />

              </td>

           </tr>

           <tr>

              <td colspan="2" bgcolor="#00ff40" height="100px">

                  <tiles:insertAttribute name="footer" />

              </td>

           </tr>

       </table>

    </body>

</html>

Layout.jsp中将根据自定义的Tiles.xml进行布局

Tiles配置项

Layout

title

<tiles:insertAttribute name="title" />

header

<tiles:insertAttribute name="header" />

menu

 <tiles:insertAttribute name="menu" />

body

 <tiles:insertAttribute name="body" />

footer

<tiles:insertAttribute name="footer" />

如此页面布局已经初步完成

4,定义内容页面

根据实际需要定义内容页面,例如Tiles.xml配置中的index从myapp.homepage模板继承,只是内容换为自定义的内容页。

<definition name="index" extends="myapp.homepage">

             <put-attribute name="body" value="/Content/indexContent.jsp"/>

</definition>

此处的indexContent.jsp为自定义的页面内容

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<a href="<s:url action='List'/>">List</a>

这里只是一个简单的link指向List Action

5,编写实际访问页面

接下来的编写实际访问页面就相对比较简单了,这里以index.jsp为例

只需要使用tiles中的定义即可

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ taglib uri="WEB-INF/struts-tiles.tld" prefix="tiles" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

<tiles:insertDefinition name="index" />

到目前为止已经完成了基本的配置

6,为了结合tiles的使用需要在web.xml中添加如下配置

<context-param>

  <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>

  <param-value>/WEB-INF/tiles.xml</param-value>

 </context-param>

<listener>

  <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>

 </listener>

7,运行即可看到模板页的效果

原文地址:https://www.cnblogs.com/SkyMouse/p/2340745.html