Struts tiles初体验

    技术2022-06-27  102

    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,运行即可看到模板页的效果


    最新回复(0)