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

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

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

    閑人野居
    好好學習,天天向上
    posts - 57,  comments - 137,  trackbacks - 0
      對于標記庫,不想再說些什么了。jsf可能最大的毛病都在這個標記庫上面,首先定義的標記在jsp中,并不起到相應的輸出功能,而只是用來增加相應得組件。在jsf中,最上層的組件為UIViewRoot,基本上所有的操作都是需要圍繞著此組件。而標記庫的存在,只是為了簡化相應的操作。如下的標記:
    <f:view>
        
    <h:form>
         
    <h:panelGrid>
            .   
        
    </h:panelGrid>
           
    </h:form>
    </f:view>

    其實對應的java代碼,如下:
    FacesContext context = FacesContext.getCurrentInstance();
    UIViewRoot root 
    = context.getViewRoot();
    HtmlForm form 
    = new HtmlForm();
    HtmlPanelGrid grid 
    = new HtmlPanelGrid();
    form.getChildren().add(grid);
    root.getChildren().add(form);

    也就是說沒有標記庫,我完全可以使用java代碼完成。
        那么標記庫的存在到底有沒有意義,意義可能就在于簡化相應的操作,想想html的屬性是比較多的,如果每個都要用java代碼去控制,那么可能對于應用來說,顯得很不靈活,因為改代碼畢竟沒有改jsp來的快。而且代碼需要重新編譯。所以jsf的標記庫存在也是有點意義的。
    可是,現在的問題是,由于jsf本身就是規范,其實現也就會各有不同,對于每種實現都會帶有自己的那一套標記庫,隨著標記庫的增加,對于使用者來說,也是不堪忍受的重負。所以,有些時候,如果需要動態做一些配置,那么還是丟棄標記庫,用java代碼來完成吧。當然facelets,提供了一種方式,用于很靈活的擴展多個標記庫,可是,看著那么多的標記,總是還有些頭疼。

        其次,對于標記庫來說,各個標記庫的不兼容也是一個很大的問題。就拿jstl和jsf來說,jstl的變量聲明,在jsf中肯定是沒有辦法解析的,同樣jsf中的變量,在jstl中也不能認識。我指的是頁面聲明的變量,而不是session變量,如下的例子:
    <h:dataTable styleClass="table-background"
                                     rowClasses
    ="table-odd-row,table-even-row"
                                     cellpadding
    ="3"
                                     value
    ="#{recordBean.records}"
                                     var
    ="record"
                                     binding
    ="#{recordBean.recordData}">
       
    <c:if test="${record}">
         
       
    </c:if>
    </h:dataTable>

    在dataTable中聲明了變量record,但是在jstl中是不會認識的。
        可能這個問題,facelets已經解決了,主要facelets把所有的Elcontext中的變量都結合在了一起,使用自身的FaceletsContext。
    不過,如果我只是需要簡單的功能,還需要使用facelets,那么也就有點大材小用了。況且facelets也只是提供了類似tiles的功能。
    最后,想說的是,雖然jsf目前的ide支持,比其他框架多多了。可惜,人家都是建立在相應的標記庫上的,如果你定義了自己標記庫,人家不一定會認識。所以標記庫的存在,對于jsf來說,也許并不一定是好事情,可能sun覺得如果把jsp拋棄了,有點可惜。所以在升級jsf的同時,也升級了相應得jsp規范。
        個人覺得,也許模版技術,可能也會是一種選擇,看看velocity和freemarker,覺得其比jsp有優勢多了。

    posted on 2007-05-09 20:33 布衣郎 閱讀(2792) 評論(4)  編輯  收藏 所屬分類: web view技術

    FeedBack:
    # re: 關于jsf 的標記庫
    2007-05-10 09:43 | 沖向SOA!
    標記庫不兼容是比較煩,jsf1.2有所改善。  回復  更多評論
      
    # re: 關于jsf 的標記庫
    2007-05-10 10:57 | Tendy
    如果沒有標記庫
    通過 new 操作符創建 component
    樓主覺得容易排版么?  回復  更多評論
      
    # re: 關于jsf 的標記庫
    2007-05-10 15:49 | 布衣郎
    @Tendy
    可能這正是需要我們考慮的,也許使用模板方式,是一個很好的替換方案。不過需要更改jsf的renderer體制  回復  更多評論
      
    # re: 關于jsf 的標記庫
    2012-07-02 09:46 | 馬云

    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 357230
    • 排名 - 155

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 337P日本欧洲亚洲大胆精品 | 亚洲免费在线视频观看| 国产精品亚洲不卡一区二区三区| 处破女第一次亚洲18分钟| 四虎www免费人成| 亚洲第一综合天堂另类专| 波多野结衣久久高清免费 | 亚洲综合在线另类色区奇米| 成人特级毛片69免费观看| 亚洲午夜精品第一区二区8050| 日本一区二区三区在线视频观看免费 | 在线观看免费亚洲| 免费播放美女一级毛片| 国产一级淫片a视频免费观看| 日本免费精品一区二区三区| 亚洲综合无码精品一区二区三区| 国色精品va在线观看免费视频 | 97青青草原国产免费观看| 亚洲成aⅴ人在线观看| 中文字幕日本人妻久久久免费| 亚洲精品无码人妻无码| 国产无遮挡又黄又爽免费视频| 野花高清在线观看免费完整版中文| 国产精品自拍亚洲| 免费高清在线影片一区| 日本一区二区在线免费观看| 亚洲AV日韩AV天堂一区二区三区| 2020久久精品国产免费| 色婷婷亚洲一区二区三区| 久久精品国产精品亚洲精品| 妻子5免费完整高清电视| 色噜噜的亚洲男人的天堂| 亚洲乱码精品久久久久..| 国产在线a免费观看| 特级毛片aaaa级毛片免费| 久久久影院亚洲精品| 麻豆国产精品入口免费观看| 两个人日本WWW免费版| 亚洲日本久久久午夜精品| 狠狠亚洲狠狠欧洲2019| 免费人成网站在线观看10分钟|