瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JSF學習及應用一-(安裝配置)

          Posted on 2007-12-11 09:38 瘋狂 閱讀(3524) 評論(0)  編輯  收藏
          JSFJavaServer Faces
           

          JSFJAVA EE規范的一部分。它是:Java Web應用的用戶界面框架。

          l         JSF提供一套API以及標簽庫,用來創建頁面表單以及復雜的界面元素

          l         JSF使得編寫表單提交的代碼更加簡單,這些代碼可以響應那些不同的按鈕提交,改變某些值或某些用戶的選擇等等

          l         Managed beans:使得JSF簡化了處理請求參數的方法

          l         ELExpression Language):JSF有一套表達式語言用來訪問java bean的屬性以及集合元素等。

          l         提供表單域類型轉換以及驗證

          實現包

          Apachemyfaces包是第一個開源的JSF實現。Myfaces有一些擴展的包,這些包是對JSF標準組件的擴充,可以協助我們更加快速的開發。Myfaces的擴展包括:

          * Tomahawk myfaces提供了一系列遠遠超過規范規定的組件,這些組件可以兼容JSF1.1的參考實現,以及其它兼容JSF1.1規范的其它實現,當然也兼容myfacesJSF實現。

           

          * Tobago:目標是提供一套基于JSF以及myfaces的良好設計的UI組件。Tobago不僅僅只是一套標簽庫。下面的幾點讓它與其它框架不同:

                 - 無需HTML設計,聚焦于商業應用程序的開發。開發者可以將精力集中在用戶界面上,而不是網頁。

                 - UI組件是對HTML的抽象,它不僅僅可以用于HTML頁面,它的輸出格式可以定制。

                 - “主題”機制,使得可以很容易切換應用程序的外觀。

                 - 布局管理器可以自動排列組件,這就意味著無需使用HTML表格或其它技術來手工管理組件的布局。

           

          * TrinidadJSF1.1的組件庫

          最新的myfaces包(版本是:1.1.1)是對JSF1.1規范的實現。

          UI組件模型

          JSF提供一套豐富靈活的組件模型,包括:

          l         一套UIComponent類,定義UI組件的狀態和行為。

          l         呈現模型:定義如何用不同的方式來呈現組件

          l         事件和監聽器模型用來處理組件的事件。

          l         轉換模型:進行數據轉換

          l         驗證模型:如何驗證數據的合法性

           

          UI組件類

          比如UIFormUIInput等等,具體請參考文檔。

          組件呈現模型

          不同的組件會有不同的呈現方式,同一個組件可能會有不同的呈現方式,比如UISelectOne,可以使用radio來呈現,也可以使用下拉框來呈現等。這些,都是通過呈現模型來定義的。

          數據轉換模型

          當一個組件綁定到一個對象上之后,對于組件數據來說,總共有兩個視圖:

          一個是模型視圖:從這個角度去看,數據表現為java對象的類型,如int ,long,Date等等

          一個是呈現視圖:從這個角度去看,數據表現為一種可以被人讀取或修改的形式。比如一個Date類型,可能被展現為一個yyyy-MM-dd格式的字符串,或者是三個字符串,分別代表年、月、日。

          可以定義自己的轉換器來轉換數據。

          事件與監聽器模型

          事件:值改變事件、動作事件、數據模型事件。

          值改變:比如輸入框的值被更改、選中了checkbox

          動作事件:點擊按鈕或超鏈接

          數據模型事件:UIData組件的一行被選中的時候觸發這個事件。

          導航模型


          Navigation-rule,可以包含一個from-view-id和多個
          navigation-case
          每個navigation-case中,主要包括轉向的頁面。

          From-view-id 當前頁面

          From-action:從哪個action方法

          From-outcome:從哪個邏輯名稱

          To-view-id:轉向哪個頁面

           導航解決的問題是:從哪里到哪里。一句話來說就是:從from-view-id頁面,當from-action方法被調用而且其返回值是from-outcome的時候,轉向to-view-id頁面。

           當導航發生的時候,即使沒有調用action方法,但也會設置相應Backing Bean的屬性(如果當前的Form域綁定了屬性的話)。

           

          安裝JSF:下載http://java.sun.com/j2ee/javaserverfaces/download.html
           

          1、在Eclipse中添加JSF的支持:

           
           

          不要選擇Install JSF Jars and packaged TLDS和Install JSF TLDs,因為我們要安裝的版本跟Eclipse支持的版本不一樣,我們用的是新的版本。在MyEclipse中添加支持的目的,是為了可以使用MyEclipse的頁面導航設計器,避免我們手工編寫頁面導航的繁瑣性。

          點擊完成即可。

           

          myEclipse添加了JSF的配置文件和修改了web.xml文件!

          為了跟新版本的myfaces配合,我們最好將web.xml中關于myfaces的配置全部按照下面的說明重新配置一遍:

          我們的例子以myfaces的實現包以及Tomahawk的擴展包作為學習JSF的起點。

          依賴包可以在tomahawk-examples-1.1.6-bin/myfaces-example-blank-1.1.6.war中找到。

           

          2、添加依賴包:


           

          將依賴包拷貝到WEB-INF/lib下面,如果已經有的包,可以選擇覆蓋或不覆蓋,然后解決其中版本有沖突的包,將低版本的包去掉!

          沖突的包主要包括:commons-collections,commons-fileupload,commons-lang,commons-logging

           

          3、修改web.xml文件,添加如下內容:

          l         指定配置文件的位置

           <context-param>

              <param-name>javax.faces.CONFIG_FILES</param-name>

              <param-value>/WEB-INF/faces-config.xml</param-value>

           </context-param>

          l         Tomahawk的過濾器,用于解釋那些擴展的功能

           <filter>

              <filter-name>extensionsFilter</filter-name>

              <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>

           </filter>

           <filter-mapping>

              <filter-name>extensionsFilter</filter-name>

              <url-pattern>*.jsf</url-pattern>

           </filter-mapping>

           <filter-mapping>

              <filter-name>extensionsFilter</filter-name>

              <url-pattern>/faces/*</url-pattern>

           </filter-mapping>

          l         MyfacesServlet

           <servlet>

              <servlet-name>Faces Servlet</servlet-name>

              <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

              <load-on-startup>1</load-on-startup>

           </servlet>

           <servlet-mapping>

              <servlet-name>Faces Servlet</servlet-name>

              <url-pattern>*.jsf</url-pattern>

           </servlet-mapping>

          4、在WEB-INF目錄下,添加faces-config.xml配置文件

          <?xml version="1.0"?>

          <!DOCTYPE faces-config PUBLIC

           "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"

           "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >

          <faces-config>

             

          </faces-config>

          下一篇將結合MyEclipseJSF的支持來開發JSF的程序。

           


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙海市| 望城县| 青铜峡市| 阳泉市| 云梦县| 砀山县| 邯郸县| 永胜县| 乐清市| 福州市| 寻乌县| 德兴市| 太和县| 马边| 石景山区| 涟水县| 友谊县| 正定县| 屏南县| 左权县| 旬邑县| 安阳县| 敦化市| 乌鲁木齐县| 永川市| 永春县| 泾川县| 邵阳市| 望都县| 武山县| 郴州市| 屏东县| 广昌县| 澄城县| 彩票| 保亭| 肇源县| 永吉县| 罗山县| 韶山市| 罗定市|