struts1.x的tiles理解

一个星期前看的tiles在用到的时候居然忘了,只能再次查阅书籍。看来我得写点什么加深对它的理解,下次只要看这篇博客就行了。

我的理解是:tiles的本质是把jsp页面的布局和内容解耦。

它的布局起点是一个布局页面,可以记为page1,这个page1做好布局,同时设置了一些内容插入点。插入点通过<tiles:insert  attribute=“content*”/>做标记。 

它的内容起点群是一组内容页面,记为page2,page3......

它的终点是我们要用的综合布局和内容的综合页面,记为pageN。

那么如何从起点到达终点呢?

最简单的情况是直接连通起点和终点。就是在终点pageN中,使用 <tiles:insert page="page1">,再使用<tiles:put name="content1" value="page2">

.........把起点组合起来。

但是tiles-def.xml的应用,可以避免在jsp页面中放入这么多的内容。我们可以定义一个组件叫做definition,然后在jsp中用一句话<tiles:insert definition="definition1"/>代替原来的这么多废话。而废话可以放在tiles-def.xml中,写出<definition name="definition1" path="page1"> <put name="" value="page2"/>......。在这里前缀tiles:也可以省略掉了。

definition的引入,相当于加入了一个中间节点,起点和终点通过这个中间节点连接起来。(其实definition也可以直接是一个起点,只要它是一个不包含可变内容接入点的jsp页面。)

复杂的情况是,我们可以引入更多中间节点,使得起点到终点的灵活性更高。唯一要变化的是在把上面的page变换为definition,再加上一个type属性。比如<definition name="**" path="page1"> < put name="" value="definition1" type="definition"/>(如果tiles解析器够聪明,其实type属性也是多余)

更复杂的是一个继承extends概念。也就是一个中间节点是另一个中间节点的子类。可以使用<definition name="" extends="base_definition">来表示,当然这个时候,base_definition的某一个put元素只定义了name,没有value属性。

使用图形可视化tiles-def.xml使一切显得很自然。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值