gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          Facelets介紹

          1. Facelets介紹

            JSF和Java服務器頁面技術之間的不匹配,是JSF開發中的一個嚴重問題。問題是如何把JSP的動 態內容集成到JSF基于組件的模型中。JSP非常重視生成動態內容輸出,而JSF需要JSP來協調組件模型的構建。因為這個任務超出了JSP原來的目的, 所以產生了距離。于是,有人認為“試圖把 JSF 和 JSP 結合起來就像試圖要把腳硬塞進手套一樣:可能做得到,但是只是更好的解決辦法出現之前的一個權宜之計”。

            既然JSF和JSP結合起來困難重重,期待中的“更好的解決辦法”出現了嗎?是的,這個解決辦法就是將要為你介紹的Facelets。

            Facelets是用來建立JSF應用程序時的一個可供選擇的表現層技術。它提供了一個強有力的模板化系統,讓你使用HTML樣式的模板來定義JSF的表現層,減少了組件整合進表現層時候冗余的代碼。

            先看一個簡單的Facelets示例:

             1 <html xmlns="http://www.w3.org/1999/xhtml"
             2     xmlns:h="http://java.sun.com/jsf/html"
             3     xmlns:f="http://java.sun.com/jsf/core">
             4 <head>
             5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
             6 <title>My First Facelet</title>
             7 </head>
             8 <body>
             9 Hi. My name is Duke. I'm thinking of a number from
            10 #{UserNumberBean.minimum} to #{UserNumberBean.maximum}. Can you guess
            11 it?
            12 <input type="text" jsfc="h:inputText" id="userNo"
            13     value="#{UserNumberBean.userNumber}"/>
            14 <input type="submit" jsfc="h:commandButton" id="submit" action="success"
            15     value="Submit" />
            16 </body>
            17 </html>
            
                

            你可能會感覺到這些標簽看起來特別熟悉。這就是要點。使用Facelets不需要學習額外的模板語言或schema。Facelets的優點還有許多,這里不一一點出,關注Facelets的用戶可瀏覽java.net Facelets項目主頁

          2. Facelets支持

            Facelets在解決JSF應用程序的展現方面是如此的優秀,不少開發者使用Facelets開發JSF。支持Facelets的方法很簡單,只要遵循以下步驟即可:

            1、將jsf-faceles.jar放到WEB-INF/lib目錄中。注意:jar包需是facelets 1.1.12或以上版本。

            2、修改WEB-INF/web.xml,增加以下配置:

            <context-param>
            <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
            <param-value>.xhtml</param-value>
            </context-param>

            3、修改WEB-INF/faces-config.xml,增加以下配置:

            <application>
            <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
            </application>

               建立Facelets的模版頁

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       
                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
          >
          <html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui
          ="http://java.sun.com/jsf/facelets">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <title>Sample Template</title>
          </head>
          <body>
          <h1>#{title}</h1>
          <table border="1">
              
          <tr>
                  
          <td>
                      
          <ui:insert name="menu" />
                  
          </td>
                  
          <td>
                      
          <ui:insert name="body" />
                  
          </td>
              
          </tr>
          </table>
          </body>
          </html>

          然后建立client頁面:


          <body>
             
          <ui:composition template="template.xhtml">
              
          <ui:param name="title" value="Here's my Title" />
              
          <ui:define name="menu">Here's My Menu</ui:define>
             
          <ui:define name="body">Here's My Body</ui:define>
             
          </ui:composition>
          </body>

          瀏覽效果,需要注意的是URL的后綴名需為faces:



          posted on 2008-03-05 16:19 gembin 閱讀(1134) 評論(0)  編輯  收藏 所屬分類: JSF

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 福海县| 五河县| 浠水县| 彭州市| 寿宁县| 岳普湖县| 新郑市| 三江| 庆云县| 华宁县| 班戈县| 满城县| 九江市| 鲁山县| 孝感市| 江孜县| 昭通市| 资阳市| 云梦县| 景德镇市| 慈溪市| 辽中县| 桓仁| 巫山县| 河津市| 民丰县| 兴安县| 饶平县| 洞头县| 金昌市| 崇明县| 云南省| 翼城县| 镇远县| 丰原市| 兴化市| 甘洛县| 延川县| 秦皇岛市| 连江县| 鹤峰县|