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 閱讀(1144) 評論(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
          主站蜘蛛池模板: 井研县| 绩溪县| 苏州市| 康乐县| 怀化市| 乐山市| 涿州市| 平原县| 盐亭县| 宿迁市| 资溪县| 昌邑市| 黑水县| 万山特区| 广饶县| 长葛市| 翁源县| 凤台县| 铁岭市| 大兴区| 梁河县| 沅江市| 济源市| 乌兰察布市| 揭西县| 乳山市| 白沙| 遵义市| 太仆寺旗| 江华| 富源县| 九台市| 鱼台县| 巴里| 桦甸市| 荣昌县| 延长县| 扎兰屯市| 通许县| 临高县| 峨眉山市|