Struts 1.x | 使用struts中的tiles框架技术使用模板页


1) 在开发Web应用程序时,常常要求同一个站点的所有Web页面保持一致的外观。比如


                 ---------------------------------
   | |          |        
    | |   header |
                 | |-------------------------
    |  Menu |   |
   | |    content  |
   | |         |
   | |------------------------  
   | |   |
   | | footer  |
   | |   |
   | |   |
                 ---------------------------------


2) 对同一个站点的所有页面,只有content部分的内容不同,如果采用基本的jsp语句来编  写所有web页面。显示会导致

     大量的重复编码,增加开发和维护成本,我们完全可以把其中不变的部分定义为模板。以后只要使用模板就行了


3)struts中的tiles框架提供了这样一种模板页的实现方案

 

4)tiles具体实现步骤:


                 A:做一个模板页。该模板页包括头,左边,顶边 model.jsp。
                      注意:
                          整个表格:800*600
                          左边宽:20%
                          右边宽:80%,高80%
                          顶边高:10%
                          底边高:10%
                B:去掉其中的<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">的标记
                C:在model.jsp中待插入内容页的地方用<tiles:insert attribute="content"/>标记指定
                    待插入的内容,属性名为"content" 
    <tr>
          <td width="80%" height="90%">***<tiles:insert attribute="content"/>****</td>
    </tr>
                D:创建一个内容页。注意一定要去掉其中的html标记与body标记。因为模板页中已经定义了html标记。

                    如果去掉了body标记不好排版。可以使用表格进行排版
                    一般命名为:XXXContent.jsp。比如:workerAddContent.jsp。

                    如果有样式则要取一个不同于其它的样式的别名


                E:把内容页与模板页合在一起做成一个组件


                   1)在WEB-INF下面创建一个xml配置文件。取名为tiles-defs.xml


                   2)写在如下内容:
                        <?xml version="1.0" encoding="UTF-8"?>
                             <!DOCTYPE component-definitions PUBLIC "-//Apache Software       

                                 Foundation//DTD Tiles Configuration 1.1//EN" "tiles-config_1_1.dtd" >
            <component-definitions> //定义多个definitions组件
               <definition name="add-defin" path="/model.jsp"> //这是模板页
                     <put name="content" value="addContent.jsp"/>
                         //name的值一定要与模板页中定义的<tiles:insert attribute="content"/>一致
                         //value写上内容页
                </definition>   
                  .....
               <definition name="XXX" path="/XXX.jsp"> 定义多个组件
                     <put name="XXX" value="XXX.jsp"/>
                         //name的值一定要与模板页中定义的<tiles:insert attribute="content"/>一致
                         //value写上内容页
                </definition>                   
           </component-definitions>

 

                   3)在struts-config.xml中配置


           </plug-in>
            <plug-in className="org.apache.struts.tiles.TilesPlugin">
            <set-property property="definitions-config"  value="/WEB-INF/tiles-defs.xml"/>
                                                                //此处的名字一定要与前同创建的
                                                                //tiles-defs配置文件名一致
           </plug-in>


            4)在结果页中:
                     <%@ page contentType="text/html; charset=gb2312"

                                            language="java" import="java.sql.*" errorPage="" %>
                     <%@ taglib uri="http://struts.apache.org/tags-tiles"  prefix="tiles" %>
                     <tiles:insert definition="add-defin"  />
                                                                           //此处的名字一定要与在tiles-defs中定义的组件name保持一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值