Tiles2 学习笔记之二

引言:

      相信通过前面一个示例,就大致知道Tiles2这个框架的一个结构了。但Tile2的作用还并没有完全的体现出来呢?它的强大之处出乎了我一开始的预料了。

      而这一篇,我想写的便是Tiles2的配置文件。Tiles2的强大,可以说,很大的一部分在于配置文件中的。

 

一、definition 标签

     这是Tiles2的定义标签,每一个设置开始都需要它来做一个定义,如:

 

<definition name="layout" template="layouts/layout.jsp">
      <put-attribute name="title"  value="tiles2示例"/>
      <put-attribute name="header" value="/views/layout/header.jsp"/>
      <put-attribute name="body"   value="/views/layout/body.jsp"/>
      <put-attribute name="footer"   value="/views/layout/footer.jsp"/>
</definition> 

  template是为模版类型。

  在这里可以变为一个模版。并在definition中注入attribute(属性)

 

  在这里,definition如同一个java类一样,可能被继承和重写。

  继承性

<definition name="sublayout" template="layouts/sublayout.jsp" extend="layout">
      <put-attribute name="title"  value="tiles2示例2"/>
      <put-attribute name="menu"  value="/views/layout/menu.jsp"/>
      <put-attribute name="body"   value="/views/layout/subbody.jsp"/>
      <put-attribute name="footer"   value="/views/layout/footer.jsp"/>
</definition> 

    这样,名为sublayout继承了layout的所有属性.

    menu    为新增加的属性

    title,body,footer   为重写的属性

    header   为继承的属性

 

    如何attribute没有被指定value的值,刚可以理解为是一个abstract definition, 可以作为一个基本的definition来被继承,如果在页面直接去取这个definition的属性的,刚会在运行时出现丢失该属性的情况。

    在这里面我们看到了,template=""指向了一个页面,这个就是该definition所指向的的页面了。在里这个页里面,可以注入该definition中包含的attribute。

    注入的方式为:

<tiles:insertAttribute name="header" />

    当然在这里jsp页面需要引入:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
 

二、attribute 标签

    attribute标签 有三种类型

    String:        可以直接指向一个字符串;

    template:   可以指向一个页面模板;

    definition:  可以指向一个定义的名字,指向一个页面;

 

    这是设置definition的各个属性,也就是注意对应页面内所对应的value值(即块内容)

 

 

 

你可能感兴趣的:(apache,jsp,框架)