Tiles2 学习笔记之三——常用的方式(一)

继前一篇所写的Tiles的配置信息中,具有继承性 的这一特性,确实给我们带来了不少的方便。

但除此之后,Tiles2给我们的,还有更多好的惊喜呢。

 

1、List Attribute 列表属性

 

 1.1简单的例子

 配置:

 使用<put-list-attribute>标签

<definition name="myapp.homepage.body" template="/layouts/variable_rows.jsp">
  <put-list-attribute name="items">
    <add-attribute value="/tiles/banner.jsp" />
    <add-attribute value="/tiles/common_menu.jsp" />
    <add-attribute value="/tiles/credits.jsp" />
  </put-list-attribute>
</definition>

template 对应的 jsp中:

使用c标签中的进行遍历。

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<tiles:useAttribute id="list" name="items" classname="java.util.List" />
<c:forEach var="item" items="${list}">
  <tiles:insertAttribute value="${item}" flush="true" />
  <br/>
</c:forEach>
 

 1.2 属性列表的继承

 

<definition name="myapp.homepage.body" template="/layouts/variable_rows.jsp">
  <put-list-attribute name="items">
    <add-attribute value="/tiles/banner.jsp" />
    <add-attribute value="/tiles/common_menu.jsp" />
    <add-attribute value="/tiles/credits.jsp" />
  </put-list-attribute>
</definition>

<definition name="myapp.homepage.body.extended" extends="myapp.homepage.body">
  <put-list-attribute name="items" inherit="true">
    <add-attribute value="/tiles/greetings.jsp" />
  </put-list-attribute>
</definition>

 

  这就实现在列表属性的继承,这里,在引入的地方所包含的就有着:

 

    * /tiles/banner.jsp
    * /tiles/common_menu.jsp
    * /tiles/credits.jsp
    * /tiles/greetings.jsp
 

2、Tiles2 运行合成

   当工程在执行的时候,允许在jsp中自行的去修改<definition>或属性等,看下面例子:

 

  2.1 jsp中进行动态的往definition中加入属性

<tiles:insertTemplate template="/layouts/classic.jsp">
  <tiles:putAttribute name="title" value="Tiles tutorial homepage" />
  <tiles:putAttribute name="header" value="/tiles/banner.jsp" />
  <tiles:putAttribute name="menu" value="/tiles/common_menu.jsp" />
  <tiles:putAttribute name="body">
    <tiles:insertTemplate template="/layouts/variable_rows.jsp">
      <tiles:putListAttribute name="items">
        <tiles:addAttribute value="/tiles/banner.jsp" />
        <tiles:addAttribute value="/tiles/common_menu.jsp" />
        <tiles:addAttribute value="/tiles/credits.jsp" />
      </tiles:putListAttribute>
    </tiles:insertTemplate>
  </tiles:putAttribute
  <tiles:putAttribute name="footer" value="/tiles/credits.jsp" />
</tiles:insertTemplate>
 

  2.2 插入临时修改的definition

    这在jsp中,临时对该definition进行某些属性的重写

<tiles:insertDefinition name="myapp.homepage.customer" template="/layouts/alternative_layout.jsp">
  <tiles:putAttribute name="menu" value="/tiles/common_menu_for_customers.jsp" />
</tiles:insertDefinition>

 

  2.3definition的临时创建和使用

    在jsp中

<tiles:definition name="myapp.homepage.customer" extends="myapp.homepage">
  <tiles:putAttribute name="menu" value="/tiles/common_menu_for_customers.jsp" />
  </tiles:definition>
<tiles:insertDefinition name="myapp.homepage.customer" />

 

3、使用API对Tiles2容器管理(还未理解好,碰到取不到Container的问题)

TilesAttributeContext attributeContext = container.getAttributeContext(request,response);
TilesAttributeContext attributeContext = container.startContext(request,
        response);
//这个Context还不知道怎么取到,程序编译不过。
 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值