分享

struts中tiles框架的组合与继承 - yjhmily - BlogJava

 nbtymm 2006-10-31
这两天在给公司的新项目搭框架,在配tiles框架的时候发现一个小问题:
    比如开发团队一共5人,每人10个页面,如果按照简单的tiles框架配置方法,每个<definition/>中都会产生很多重复的<put name="top" value="xxx.jsp"/>代码,导致tiles-defs.xml文件不段的膨胀.
    仔细想了想tiles框架的原理,如果tiles支持嵌套功能的话,虽然tiles-defs.xml文件中的<definition/>个数没办法减少,但
每个<definition/>中的<put/>是完全可以精简的.即需要改变哪个页面就只配置哪个页面;
    查了一下struts的文档,虽然没找到tiles框架的嵌套功能,却找到了组合和扩展(我喜欢叫它继承),同样能解决问题!

 
   下面我简单介绍一下它们各自的用法:(页面布局见下图)

tiles_layout.jpg

一,Tiles组件的模板

    这里我们需要设置两个layout模板,分别为parent_layout.jsp和child_layout.jsp
   
    parent_layout.jsp
    
<!--parent_layout.jsp-->
<body>
    
<div>
        
<!--顶部菜单区域-->
    
<tiles:insert attribute="top" />
    
<!--左边竖导航-->
    
<tiles:insert attribute="left" />
        
<!--右边主内容区域-->
        
<tiles:insert attribute="child" />
        
<!--底步区域-->
    
<tiles:insert attribute="foot" />
    
</div>
</body>

   child_layout.jsp

<!--child_layout.jsp-->
<body>
    
<div>

    
<!--右边主内容的tab区域-->
    
<tiles:insert attribute="tab" />
    
<!--右边主内容的content区域-->
    
<tiles:insert attribute="content" />
     

    </div>
</body>



二,
Tiles组件的组合
   
    根据以上模板的定义,在
tiles-defs.xml文件中就可以这样写来实现Tiles的组合了:
   
// 父级tiles模板配置
<definition name="parent"path="/parent_layout.jsp">
<put name="top" value="/top.jsp" />
<put name="left" value="/left.jsp" />
<put name="child" value="child" type="definition"/> 
<put name="foot" value="/foot.jsp" />
</definition>

// 子级tiles配置
<definition name="child"path="/child_layout.jsp">
<put name="tab" value="/tab.jsp" />
<put name="content" value="/content.jsp" />
</definition>

   
三,Tiles组件的扩展(继承)
   
    这里需要对以上的parent_layout模板做一些修改,并且不需要使用child_layout

    修改后的parent_layout.jsp
   
<!--parent_layout.jsp-->
<body>
    
<div>
        
<!--顶部区域-->
    
<tiles:insert attribute="top" />
    
<!--左边竖导航-->
    
<tiles:insert attribute="left" />
    
<!--右边主内容区域-->
        
<tiles:insert attribute="tab" />
    
<tiles:insert attribute="content" />
        
<!--底部区域-->
        
<tiles:insert attribute="foot" />
    
</div>
</body>

    改完模板文件,下来该进行tiles的配置了;

// 父级tiles模板配置
<definition name="parent" path="/parent_layout.jsp">
<put name="top" value="/top.jsp" />
<put name="left" value="/left.jsp" />
<put name="tab" value="/tab.jsp" />
<put name="content" value="" />
<put name="foot" value="/foot.jsp" />
</definition>



// 子级tiles模板配置
<definition name="child" extends="parent">
<put name="content" value="/content.jsp" />
</definition>

如上所示,大家在开发中,每个页面只需要配置
子级tiles的content.jsp就ok!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多