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服務(wù)器頁面技術(shù)之間的不匹配,是JSF開發(fā)中的一個(gè)嚴(yán)重問題。問題是如何把JSP的動(dòng) 態(tài)內(nèi)容集成到JSF基于組件的模型中。JSP非常重視生成動(dòng)態(tài)內(nèi)容輸出,而JSF需要JSP來協(xié)調(diào)組件模型的構(gòu)建。因?yàn)檫@個(gè)任務(wù)超出了JSP原來的目的, 所以產(chǎn)生了距離。于是,有人認(rèn)為“試圖把 JSF 和 JSP 結(jié)合起來就像試圖要把腳硬塞進(jìn)手套一樣:可能做得到,但是只是更好的解決辦法出現(xiàn)之前的一個(gè)權(quán)宜之計(jì)”。

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

            Facelets是用來建立JSF應(yīng)用程序時(shí)的一個(gè)可供選擇的表現(xiàn)層技術(shù)。它提供了一個(gè)強(qiáng)有力的模板化系統(tǒng),讓你使用HTML樣式的模板來定義JSF的表現(xiàn)層,減少了組件整合進(jìn)表現(xiàn)層時(shí)候冗余的代碼。

            先看一個(gè)簡單的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>
            
                

            你可能會(huì)感覺到這些標(biāo)簽看起來特別熟悉。這就是要點(diǎn)。使用Facelets不需要學(xué)習(xí)額外的模板語言或schema。Facelets的優(yōu)點(diǎn)還有許多,這里不一一點(diǎn)出,關(guān)注Facelets的用戶可瀏覽java.net Facelets項(xiàng)目主頁。

          2. Facelets支持

            Facelets在解決JSF應(yīng)用程序的展現(xiàn)方面是如此的優(yōu)秀,不少開發(fā)者使用Facelets開發(fā)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) 評(píng)論(0)  編輯  收藏 所屬分類: JSF

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊(cè)

          收藏夾(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

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          free counters
          主站蜘蛛池模板: 永兴县| 双城市| 会昌县| 澄江县| 巨野县| 丽江市| 福州市| 恩平市| 鄂尔多斯市| 宁乡县| 耿马| 锡林浩特市| 昌邑市| 浙江省| 双辽市| 托克托县| 汪清县| 东丽区| 宾川县| 富源县| 武隆县| 延寿县| 沙雅县| 元朗区| 竹山县| 唐海县| 仙桃市| 连山| 东台市| 双江| 界首市| 黔西县| 景宁| 万安县| 宣恩县| 炉霍县| 读书| 桃园市| 成安县| 新闻| 东乌|