<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當(dāng)前訪問本站: hits

    yjhmily

    堅(jiān)持走自己的路……

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
    這兩天在給公司的新項(xiàng)目搭框架,在配tiles框架的時(shí)候發(fā)現(xiàn)一個(gè)小問題:
    ??? 比如開發(fā)團(tuán)隊(duì)一共5人,每人10個(gè)頁面,如果按照簡單的tiles框架配置方法,每個(gè)<definition/>中都會(huì)產(chǎn)生很多重復(fù)的<put name="top" value="xxx.jsp"/>代碼,導(dǎo)致tiles-defs.xml文件不段的膨脹.
    ??? 仔細(xì)想了想tiles框架的原理,如果tiles支持嵌套功能的話,雖然tiles-defs.xml文件中的<definition/>個(gè)數(shù)沒辦法減少,但
    每個(gè)<definition/>中的<put/>是完全可以精簡的.即需要改變哪個(gè)頁面就只配置哪個(gè)頁面;
    ??? 查了一下struts的文檔,雖然沒找到tiles框架的嵌套功能,卻找到了組合和擴(kuò)展(我喜歡叫它繼承),同樣能解決問題!

    ?
    ?? 下面我簡單介紹一下它們各自的用法:(頁面布局見下圖)

    tiles_layout.jpg

    一,Tiles組件的模板

    ??? 這里我們需要設(shè)置兩個(gè)layout模板,分別為parent_layout.jsp和child_layout.jsp
    ???
    ??? parent_layout.jsp
    ????
    <!--parent_layout.jsp-->
    <body>
    ????
    <div>
    ????????
    <!--頂部菜單區(qū)域-->
    ????
    <tiles:insert?attribute="top"?/>
    ????
    <!--左邊豎導(dǎo)航-->
    ????
    <tiles:insert?attribute="left"?/>
    ????????
    <!--右邊主內(nèi)容區(qū)域-->
    ????????
    <tiles:insert?attribute="child"?/>
    ????????
    <!--底步區(qū)域-->
    ????
    <tiles:insert?attribute="foot"?/>
    ????
    </div>
    </body>

    ?? child_layout.jsp

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

    ????
    <!--右邊主內(nèi)容的tab區(qū)域-->
    ????
    <tiles:insert?attribute="tab"?/>
    ????
    <!--右邊主內(nèi)容的content區(qū)域-->
    ????
    <tiles:insert?attribute="content"?/>
    ?????

    ????</div>
    </body>



    二,
    Tiles組件的組合
    ???
    ??? 根據(jù)以上模板的定義,在
    tiles-defs.xml文件中就可以這樣寫來實(shí)現(xiàn)Tiles的組合了:
    ???
    //?父級(jí)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>

    //?子級(jí)tiles配置
    <definition?name="child"path="/child_layout.jsp">
    <put?name="tab"?value="/tab.jsp"?/>
    <put?name="content"?value="/content.jsp"?/>
    </definition>

    ???
    三,Tiles組件的擴(kuò)展(繼承)
    ???
    ??? 這里需要對(duì)以上的parent_layout模板做一些修改,并且不需要使用child_layout

    ??? 修改后的parent_layout.jsp
    ???
    <!--parent_layout.jsp-->
    <body>
    ????
    <div>
    ????????
    <!--頂部區(qū)域-->
    ????
    <tiles:insert?attribute="top"?/>
    ????
    <!--左邊豎導(dǎo)航-->
    ????
    <tiles:insert?attribute="left"?/>
    ????
    <!--右邊主內(nèi)容區(qū)域-->
    ????????
    <tiles:insert?attribute="tab"?/>
    ????
    <tiles:insert?attribute="content"?/>
    ????????
    <!--底部區(qū)域-->
    ????????
    <tiles:insert?attribute="foot"?/>
    ????
    </div>
    </body>

    ??? 改完模板文件,下來該進(jìn)行tiles的配置了;

    //?父級(jí)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>



    // 子級(jí)tiles模板配置
    <definition?name="child"?extends="parent">
    <put?name="content"?value="/content.jsp"?/>
    </definition>

    如上所示,大家在開發(fā)中,每個(gè)頁面只需要配置
    子級(jí)tiles的content.jsp就ok!


    以上是小弟對(duì)tiles框架的組合和繼承的簡單應(yīng)用,歡迎大家指點(diǎn)!

    ???














    ???
    posted on 2006-10-25 19:06 kangxm 閱讀(4007) 評(píng)論(1)  編輯  收藏 所屬分類: J2EE

    Feedback

    #  2007-05-11 22:41 徐世賢
    英語是我的克星,我永遠(yuǎn)都考不及格
      回復(fù)  更多評(píng)論
      

    # re: struts中tiles框架的組合與繼承 2008-08-20 11:40 王毅
    你好,我使用Tiles遇到個(gè)問題,幫我解決下:

    我的test.jsp大致如下:
    <html>
    <head>
    <title><tiles:getAsString name="title"/></title>
    </head>
    <body>
    <tiles:insert definition="tile.login" flush="true" />
    </body>
    </html>
    訪問時(shí)報(bào)錯(cuò):Error.tag getAsString


    去掉<tiles:getAsString name="title"/>一切正常


    在Struts-Config.xml中加入ForwardAction以.do形式訪問test.jsp仍然報(bào)錯(cuò)



      回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 国产又粗又长又硬免费视频| 无码中文字幕av免费放| 一个人在线观看视频免费| 久久久久一级精品亚洲国产成人综合AV区 | 免费日本黄色网址| 国产片AV片永久免费观看| 日韩精品一区二区亚洲AV观看| 国产日韩精品无码区免费专区国产| 亚洲人成免费电影| 久久亚洲精品成人综合| 精品国产免费一区二区三区| 久久亚洲2019中文字幕| 久久久久成人片免费观看蜜芽| 亚洲免费观看视频| 91精品成人免费国产片| 亚洲一卡2卡4卡5卡6卡在线99| 成年女人色毛片免费看| 美女视频黄频a免费| 亚洲国产一区二区视频网站| 伊人免费在线观看| 亚洲AV综合色区无码二区爱AV| 国产福利免费在线观看| 99在线热播精品免费99热| 亚洲精品视频久久| 国产伦精品一区二区三区免费迷 | 亚洲av乱码一区二区三区| 国产精品免费综合一区视频| 一级做性色a爰片久久毛片免费| 亚洲A∨无码一区二区三区| 无码人妻一区二区三区免费| 思思久久99热免费精品6| 亚洲男人第一av网站| 日韩免费a级在线观看| 免费久久人人爽人人爽av| 亚洲男人的天堂久久精品| 亚洲av无码成人精品区| 3344永久在线观看视频免费首页 | 国产成人A人亚洲精品无码| 国产精品视频免费一区二区| 精品一区二区三区免费毛片| 亚洲第一精品电影网|