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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

      對比1: 頁面開發(Page Development)

      一個web應用實際上就是后端用java代碼獲取相應數據,并將數據傳遞給前端表現層代碼,然后最終返回給終端用戶。因此,在一個開發人員看來,當他初次接觸JSF和Tapestry時,最直接的感覺就是JSF的表現層是基于JSP的模板技術,而Ta pestry的表現層模板基本就可以看作是一個HTML。

      JSF
      JSF采用JSP的技術作為其表現層技術。與標準兼容的JSF實現必須實現一個核心組件的JSP標簽集。下面的代碼就是一個使用了JSF組件標簽的Html代碼:

    代碼:
    <h:form>      
      <h:panelGrid columns="2" border = "1">
            <h:outputText styleClass = "label" value="No"/>
    
            <h:outputText value="#{holidaySession.currentHolidayBooking.holidayID}"/>
            <h:outputText styleClass = "label" value="Date"/>
            <h:outputText value="#{holidaySession.currentHolidayBooking.date}"/>
    
            <h:outputText styleClass = "label" value="Number of days"/>
            <h:outputText value="#{holidaySession.currentHolidayBooking.amount.value}"/>
            <h:outputText styleClass = "label" value="Description"/>
    
            <h:outputText value="#{holidaySession.currentHolidayBooking.description}"/>
     </h:panelGrid>
     <BR>
     <h:commandButton value="Back" action="#{holidaydetail_backing.home}" immediate = "true"/>
    
    </h:form>

      含有JSF標簽的html頁面不能在標準瀏覽器中預覽。要想瀏覽,必須使用JSF設計工具或者直接部署到應用中,在真實運行環境中瀏覽。
      對于JSF技術來說,其表現層技術就是JSP,但是這不是唯一的解決方法。Hans Bergsten的文章介紹了可供選擇的其他的方法,讀者可閱讀該文章獲取詳細信息,Improving JSF by Dumping JSP。 Bergsten的文章中指出了混合JSF和JSP標簽暴露出的一些問題。當然,這些問題在JSF1.2和JSP2.1中會得到解決。

      Tapestry
      對于大多數的Tapestry應用來說,Tapestry的表現層模板看起來就是一個簡單的規則的Html,只不過其中加入了一些Tapestry的屬性。下面是一段例子代碼:

    代碼:
    <span jwcid = "@Conditional" condition = "ognl:currentHolidayBooking">  
            <p><strong>Holiday Details</strong></p>
            <table>
            <tr>
                    <td class = "label">No</td>
                    <td><span jwcid = "@Insert" 
                            value = "ognl:currentHolidayBooking.holidayID">1</span>
                    </td>
            </tr>
            <tr>                      
                <td class = "label">Start date</td>
                    <td><span jwcid = "@Insert" 
                            value = "ognl:currentHolidayBooking.date" format = "ognl:dateFormat">1</span>
                    </td>
            </tr>
            <tr>                               
                <td class = "label">Number of days</td>
                    <td><span jwcid = "@Insert" 
                            value = "ognl:currentHolidayBooking.amount.value">1</span>
                    </td>
            </tr> 
            <tr>               
                <td class = "label">Description</td>    
                    <td><span jwcid = "@Insert" 
                            value = "ognl:currentHolidayBooking.description">1</span>
                    </td>
            </tr>
            </table>
    </span>

      大家可以嘗試把這段代碼放入一個Html的body標簽當中,你會發現瀏覽器可以正常的觀看它。
      上面的例子中,jwcid = "@componentName"屬性就是定義了一個Tapestry標簽。
      Tapestry的模板不僅僅可以用HTML作為載體,它也支持其他的一些標記語言,Tapestry標簽是具有良好格式的標簽,即必須成對出現。 Tapestry模板技術支持的標記語言典型的就是HTML以及用于無線應用的WML。其最大的一個特點 就是,可脫離Servlet容器,直接預覽。

      事實上JSF標簽由于不是標準的html標簽,使得它對于初學者來說,是難于使用的。而對于很多java程序員來說,他們喜歡編輯HTML代碼,至少是樂意編寫html代碼。

      JSF技術宣稱的一個技術優點就是,可使用同一個模板編寫運行在不同設備上的應用,由此帶來很大的靈活性。然而,這樣做,由于要協調不同設備間的表現差異性,那么很可能同一個模板,將不能正好表現你的輸出。同時,你不得不學習新的標簽庫的使用方法,并且搞懂它們是怎樣映射到html的。隨著時間的推移,JSF標簽的簡潔可幫助你很快的編寫表現層代碼,同時也降低了開發者對jsf設計工具的依賴。

      本文認為,JSF的學習成本高于其技術優點。在大多數情況下,我們并不需要編寫適應于不同設備的應用。盡管JSF設計工具提供了簡單的圖形化的方法來構建和預覽JSF應用,但是在一個開發中,頁面設計人員更多的是喜歡用流行的HTML設計工具來編寫和預覽頁面,這就發生了一個沖突,即只有將更多的頁面工作轉移到java程序員身上,因為一個頁面設計人員通常情況下是不樂意去操作JSF設計工具的。

      JSF開發者一直在尋找一種解決這些問題的方法。JSF技術設計良好的擴展體系,使得這成為可能,其中一個技術浮現出來,那就是表現層控制器。一個非常有前途的表現層控制器的實現就是Facelets,由java.net創建的開放源代碼項目。Facelets的靈感就來源于Tapestry的模板模型,這使得JSF不再依賴于JSP技術。Facelets允許開發者創建Tapestry風格的標簽,就像下面這段代碼一樣:

    代碼:
        <input id="bar" type="text" jsfc="h:inputText" value="#{foo.bar}"/>

      在未來的一段時間內,Facelets將會被開發者所采用,或許會影響JSF未來的版本。

      和JSF比較,Tapestry在表現層方面基于HTML代碼,可被標準瀏覽器所瀏覽,這正是它在表現層上的優勢所在。

    posted on 2006-12-08 19:32 蘆葦 閱讀(253) 評論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 亚洲欧美国产国产一区二区三区| 亚洲精品福利网站| 国产大陆亚洲精品国产| 毛片A级毛片免费播放| 亚洲成a人片在线观看播放| 99久久人妻精品免费一区| 亚洲AV无码一区东京热久久 | 精品亚洲永久免费精品| 亚洲综合久久一本伊伊区| **毛片免费观看久久精品| 亚洲成人网在线观看| 日韩一区二区a片免费观看| 亚洲日日做天天做日日谢| 国产老女人精品免费视频| 特级无码毛片免费视频| 最新亚洲成av人免费看| 亚洲乱码一二三四区国产| 免费看国产成年无码AV片| 亚洲av日韩av永久无码电影| 亚洲福利在线播放| 久久黄色免费网站| 亚洲免费二区三区| 国产精品酒店视频免费看| 一级毛片免费播放视频| 国产aⅴ无码专区亚洲av| 亚欧色视频在线观看免费| 亚洲精品国产suv一区88| 亚洲午夜精品一级在线播放放| 免费人成激情视频在线观看冫| 亚洲字幕在线观看| 免费jjzz在在线播放国产| 美女被cao网站免费看在线看| 亚洲欧洲精品一区二区三区| 成年女人看片免费视频播放器| 九九免费观看全部免费视频| 1区1区3区4区产品亚洲| 国产成人免费高清在线观看 | 香蕉97碰碰视频免费| 久久久国产精品亚洲一区| 性做久久久久免费看| 国偷自产一区二区免费视频|