Struts Tiles--页面模板与页面布局

1.作用:Tiles框架提供模板机制,完成页面布局和内容展示逻辑的解耦
    -------分离变与不变的元素:布局是不变的,而内容是变化的

2.如何使用tiles框架
步骤:
1)在struts-config.xml配置tiles插件
    <plug-in className="org.apache.struts.tiles.TilesPlugin">
        <set-property property="definitions-config"
            value="/WEB-INF/tiles-define.xml"/>
    </plug-in>


2)定义tiles:tiles-define.xml
       
    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 1.3//EN"
           "http://struts.apache.org/dtds/tiles-config_1_3.dtd">

          
    <tiles-definitions>
        <definition name="definition1" page="/layout/baselayout.jsp">
            <put name="title" value="mainspace"></put>
            <put name="header" value="/layout/header.jsp"></put>
            <put name="footer" value="/layout/footer.jsp"></put>
            <put name="body" value="/layout/body.jsp"></put>
            <put name="navigator" value="/layout/navigator.jsp"></put>
        </definition>
       
        <definition name="user" extends="definition1">
            <put name="title" value="another mainspace"></put>
            <put name="body" value="/usermanager/user.jsp"></put>
        </definition>
    </tiles-definitions>

3)定义布局以及所有的组成部分
    baselayout.jsp
    header.jsp
    footer.sjp
    body.jsp
    navigator.jsp


    变化的内容定义为:
    <tiles:getAsString name="title"/>
    <tiles:insert attribute="header">



    baselayout.jsp参考代码:
    -------------------------------------------------------------------------------------------------------
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>

    <html>
      <head>
        <title>
        <tiles:getAsString name="title"/>
        </title>
      </head>
     
      <body>
            <table border="0" width="100%" cellspacing="5">
                <tr>
                    <td colspan=2 align=center>
                        <tiles:insert attribute="header"></tiles:insert>
                    </td>
                </tr>
                <tr>
                    <td width="15%" valign="top">
                        <tiles:insert attribute='navigator'></tiles:insert>
                    </td>
                    <td align="left">
                        <tiles:insert attribute='body'></tiles:insert>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <hr>
                    </td>
                </tr>
                <tr>
                    <td colspan=2 align=center>
                        <tiles:insert attribute="footer"></tiles:insert>
                    </td>
                </tr>
            </table>
      </body>
    </html>
    -------------------------------------------------------------------------------------------------------


4)在页面中引用 tiles:
    <tiles:insert definition="defall"/>
    也可以覆盖定义的属性值
    <tiles:insert definition="defall">
        <tiles:put name="title" value="my page"/>
    </tiles:insert>


3.使用tiles-define.xml定义tiles的好处:
    1)tiles可重用(被多个页面)
    2)tiles的定义可以被"继承"和"覆盖"
    3)使用已定义的definition

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值