Struts Tiles标签学习笔记 [ 原创 ]

Struts Tiles标签学习笔记:
1,Tiles可以不使用配置文件,就比jsp:include强一点,差别就是能够传参数.
 语法分两个部分:
  模版里A.jsp <tiles:insert attribute="模版变量名menu"/>
  使用模版的页面B.jsp <tiles:insert page="A.jsp">
       <tiles:put name="模版变量名menu" value="xx.jsp"/>
        </tiles:insert>
2, Tiles 使用配制文件,文件里定义的叫"tiles组件" 简称"组件".
 语法:
  配置文件里tiles-defs.xml
   <definition name="com1" path="模版页面A.jsp">
    <put name="menu" value="xx.jsp"/>
   </definition>
    这个com1组件可以拿来用.
    使用模版的页面B.jsp: <tiles:insert definition="com1"/>
 另外com1也可以直接在struts-config.xml中当作普通页面使用.例如,
 <action forward="com1" path="/test" />

3,Tiles基本上都是使用文件定义组件这种方式.写组件文件比较烦燥,Tiles就弄了几个小方法来简化
 此过程.第一个方法就是组件的参数可以是组件.组件1的参数可以是组件2,组件2的参数可以是
 组件3,组件3的参数..4..5..6,子子孙孙无穷尽也.例如:
 <definition name="com1" page="A.jsp">
  <put name="menu" value="com2" type="definition"/>
  <put name="header" value="com3" />
  <put name="footer" value="com4" />  
 </definition>
 写不写type="definition"无所谓,com2,com3,com4找不到对应文件,就到组件里找.他们必须
 也在组件文件里定义好:
 <definition name="com2" value="xx.jsp">
  <put name="com2_var" value="com5"/>
 </definition>
 呵呵,把一些常用的东东拿出来可以重复使用.就是为了这点方便.

4,还有个省劲地写组件文件的方法,组件继承.同样可以子子孙孙无穷尽也,例如Com6继承Com5,Com5继承Com1,
 Com1继承Com7....
 语法如下:
 <definition name="Com6" extends="Com5">
  <put name="menu" name="需要改动的页面"/>
 </definition>
 这样就省得写Com5组件的一堆<put>和<definition page=..>了.只需要把要修改的地方换换就行了.

5,另外模版还可以定义资源串,这个串不是写死的,而是以参数的方式传入模版的.
 语法如下:
 模版文件A.jsp中:
   <tiles:importAttibute name="自定义变量名aaa"/>
   <bean:write name="自定义变量名aaa"/>
 组件文件中:
  <definition name="comxxx" page="A.jsp">
   <put name="自定义变量名aaa" value="ApplicationResource.properties里的key值"/>
  </definition>
 这样在使用组建的文件中,B.jsp
  <tiles:insert definition="comxxx"/>就能看到资源文件中的key值对应的Value了.
   好了,这下可以看到向模版文件中不仅可以传递jsp页面,com组件,还可以传key值,下面看一个可以传list的写法

6,向模版传递list
 组件文件中:
 <definition ...
  <putlist name="items">
   <item link="xx" value="xx"/> 
   <item link="xx" value="xx"/> 
  </putlist>
 </definition>
 模版文件中可以使用items了,
  <logic:iterator id="item" name="items">
    <bean:write name="iterm property="link"/>
    <bean:write name="iterm property="value"/>
  </logic:iterator>
  
7, 还看到一个使用ControlerSupport作为基类的觉得没有多大意思,就不说了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值