zoukankan      html  css  js  c++  java
  • Struts的tiles标签

    下面开始讲解tiles标签,那么先引用2个问题,什么是tiles标签,tiles标签有什么用?

    什么是tiles标签:tiles标签是建立在JSP的include的基础之上的一组标签。

    tiles标签的作用:tiles标签为创建Web页面提供了一种模板机制,使网页的布局和网页的内容相分离。

    实现tiles标签有两种方式,第一种tiles模板方式,第二种tiles组件方式。

    tiles模板应用

    首先,新建一个templet.jsp页面,我们需要先定义一个模板,然后需要导入struts的tiles标签库。示例:

    Html代码 复制代码
    1. <%@ page language="java"  pageEncoding="gbk"%>      
    2. <%@taglib prefix="tiles" uri="/WEB-INF/struts-tiles.tld" %> <!--导入tiles标签库-->      
    3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">      
    4. <html>      
    5.   <head>      
    6.     <base href="<%=basePath%>">          
    7.     <title>My JSP 'templet.jsp' starting page</title>      
    8.   </head>      
    9.          
    10.   <body>      
    11.     <div id="all" style="height:500;background:green;">      
    12.         <div id="top" style="height:100px;background:blue;">      
    13.             <tiles:insert attribute="top"></tiles:insert><!--定义模板-->      
    14.         </div>      
    15.         <div id="left" style="height:50px;background:red;">      
    16.             <tiles:insert attribute="left"></tiles:insert>      
    17.         </div>      
    18.         <div id="main" style="height:400px;background:yellow;">      
    19.             <tiles:insert attribute="mian"></tiles:insert>      
    20.         </div>      
    21.         <div id="foot" style="height:100px;background:gray;">      
    22.             <tiles:insert attribute="foot"></tiles:insert>      
    23.         </div>      
    24.     </div>      
    25.   </body>      
    26. </html>     
    <%@ page language="java"  pageEncoding="gbk"%>   
    <%@taglib prefix="tiles" uri="/WEB-INF/struts-tiles.tld" %> <!--导入tiles标签库-->   
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
    <html>   
      <head>   
        <base href="<%=basePath%>">       
        <title>My JSP 'templet.jsp' starting page</title>   
      </head>   
          
      <body>   
        <div id="all" style="height:500;background:green;">   
            <div id="top" style="height:100px;background:blue;">   
                <tiles:insert attribute="top"></tiles:insert><!--定义模板-->   
            </div>   
            <div id="left" style="height:50px;background:red;">   
                <tiles:insert attribute="left"></tiles:insert>   
            </div>   
            <div id="main" style="height:400px;background:yellow;">   
                <tiles:insert attribute="mian"></tiles:insert>   
            </div>   
            <div id="foot" style="height:100px;background:gray;">   
                <tiles:insert attribute="foot"></tiles:insert>   
            </div>   
        </div>   
      </body>   
    </html>   
    

     

    上面,我们定义了一个网页的模板,并对模板的布局做了定义,用tiles的insert标签来定义模板,attribute这个是定义一个属性,到时候会根据这个属性值来放置不同的网页,好了这一步做好了。

    然后,我们就可以定义index页面了,也就是根据我们定义的这个模板来显示页面了,示例代码:

    Html代码 复制代码
    1. <body>      
    2.     <tiles:insert page="templet.jsp" flush="true">      
    3.         <tiles:put name="top" value="jsp/top.jsp"></tiles:put>      
    4.         <tiles:put name="left" value="jsp/left.jsp"></tiles:put>      
    5.         <tiles:put name="main" value="jsp/main.jsp"></tiles:put>      
    6.         <tiles:put name="foot" value="jsp/foot.jsp"></tiles:put>      
    7.     </tiles:insert>      
    8.   </body>    
    <body>   
        <tiles:insert page="templet.jsp" flush="true">   
            <tiles:put name="top" value="jsp/top.jsp"></tiles:put>   
            <tiles:put name="left" value="jsp/left.jsp"></tiles:put>   
            <tiles:put name="main" value="jsp/main.jsp"></tiles:put>   
            <tiles:put name="foot" value="jsp/foot.jsp"></tiles:put>   
        </tiles:insert>   
      </body>  

     

    这里是主页面,还是用tiles的insert标签来构建主页面,page属性是指引用的哪个模板,这里就是我们刚刚定义的templet.jsp这个模板页面,flush这里的意思是指先生成模板再生成页面,接着用tiles的put标签来放置不同的页面,这里的name就刚好对应了模板中的attribute值,value的值是我们要放置哪些页面进去,这个就是使用模板的方式,我们可以浏览下index这个页面就可以看到效果了。

    tiles组件应用

    tiles组件是用xml配置的方式来放置页面,更为灵活!

    使用tiles组件的话,需要在struts-config.xml里面导入tiles插件,示例:

    Xml代码 复制代码
    1. <message-resources parameter="com.lovo.struts.ApplicationResources" />      
    2.    <plug-in className="org.apache.struts.tiles.TilesPlugin">      
    3.     <set-property property="definitions-config" value="/WEB-INF/tiles.xml" />      
    4.     <set-property property="definitions-parser-validate" value="true" />      
    5.   </plug-in>    

     注意加到message后面哦, < set-property   property = "definitions-config"   value = "/WEB-INF/tiles.xml"   />  这里定义配置文件的位置和名字,这里我们在WEB-INF下面新建一个tiles.xml文件,并用tiles1.0的dtd来约束,示例:

    Xml代码 复制代码
    1. <?xml version="1.0" encoding="UTF-8"?>      
    2. <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "tiles-config_1_1.dtd" >      
    3. <tiles-definitions>      
    4.   <definition name="index-definition" path="/templet.jsp">      
    5.     <put name="top" value="jsp/top.jsp"></put>      
    6.     <put name="left" value="jsp/left.jsp"></put>      
    7.     <put name="main" value="jsp/main.jsp"></put>      
    8.     <put name="foot" value="jsp/foot.jsp"></put>      
    9.   </definition>      
    10. </tiles-definitions>    

     

    这里,跟刚才的模板方式基本上一样,path是模板的路径,name是引用的名字,其他的跟刚才的index的主页面是一样的,好了,我们最后来看看怎么引用到这个配置文件。

    这里的引用就很简单了,示例:

    Html代码 复制代码
    1. <body>      
    2.         <tiles:insert definition="index-definition"></tiles:insert>      
    3. </body>     
    <body>   
            <tiles:insert definition="index-definition"></tiles:insert>   
    </body>   

     这一句话就搞定了,引用的名称是配置文件的name属性,就能显示出跟刚才一样的效果了!

  • 相关阅读:
    4500 小Q系列故事——屌丝的逆袭
    HDU 1171 Big Event in HDU
    linux库文件 /usr/lib
    HDU 1860 统计字符
    编程之美~~传话游戏
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1203 I NEED A OFFER!
    各种树
    HDU 3127 WHUgirls
    01背包 完全背包 多重背包 二维费用背包
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331518.html
Copyright © 2011-2022 走看看