用JavaServer Faces開發Web應用(2)

JavaServer Faces應用程序的構成

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

一個JavaServer Faces 應用程序跟其它基於WebJava應用程序一樣,運行在Java Servlet容器內,包含以下部分:

  1. JavaBeans 組件(或模型對象)包含應用特有的功能和數據

  2. 事件監聽器(Event listeners

  3. JSP 頁面

  4. 服務器端輔助類

  5. 用來表現UI組件的定製標記庫(tag library

  6. 用來表示事件處理(event handler)和數據校驗(validator)的定製標記庫(tag library

  7. UI 組件用來表示服務器上有狀態的對象(stateful objects

  8. 數據校驗器(Validators)、 事件處理器(event handlers)和導航處理器(navigation handlers)。 Validators用來在服務器端更新之前提供組件數據的校驗。)

JavaServer Faces提供了一個基於HTML的組件標記庫作爲參考實現,高級開發者可以開發自己的組件標記庫來表示定製組件。

 

JavaServer Faces參考實現提供了一個定製標記庫,用HTML的方式展現組件。下面是使用這個標記庫的一個簡單例子。如果讀者想知道它所支持的所有的組件標記的清單,請參考JavaServer Faces規範 教程

 

    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

    <body bgcolor="white">

    <h2>What is your name?</h2>

    <f:use_faces>

    <h:form id="helloForm" formName="helloForm" >

        <h:input_text id="username" />

        <h:command_button id="submit" label="Submit" commandName="submit" />

    </h:form>

    </f:use_faces>

 

JavaServer Faces組件架構的這種實現使得組件的功能可以在組件類中定義,而組件的表示可以被另外一方來提供。一個用於表示的工具包(render kit)定義對於一個特定的客戶端,組件類如何準確地映射到組件標記。JavaServer Faces參考實現提供了一個這樣的工具包,不過它只能把組件表現給HTML客戶端。在HTML RenderKit中,每一個JSP組件都包含兩部分,在UIComponent類中定義的組件功能,在表現者(Renderer)定義組件的表現特徵。例如,command_buttoncommand_hyperlink都用來表示一個UIComponent,但它們用不同的方式來表示。Button組件作爲一個按鈕來表示,而hyperlink組件作爲一個超級連接來表示。

 

開始使用JavaServer Faces

 

要想使用JavaServer Faces進行開發,你得安裝 (Java WSDP 1.0_01) 或者Tomcat4.0+

 

JavaServer Faces參考實現的預覽版(EA3)可以從這裏下載。 當你解壓以後,你會有類似的目錄結構(Windows平臺下):

 

c:/jsf-ea3>

     example

     lib

     其它文件

 

example目錄裏面是示例應用程序的源文件和WAR檔案文件,lib 子目錄中是一些JavaServer Faces 必須依賴的Jar檔案文件,我們分別予以簡介:

  • commons-beanutils.jar:定義和訪問JavaBeans 屬性的一些實用工具

  • commons-collections.jarJ2SE 集合框架(Collections Framework)的擴充

  • commons-digester.jar:用來處理xml文檔

  • commons-logging.jar:一個靈活記錄日誌的實用程序

  • jsf-api.jar:包含javax.faces.* API

  • jsf-ri.jar:包含JavaServer Faces 參考實現的類

  • jstl.jar:包含JavaServer Pages 標準標記庫(JavaServer Pages Standard Tag JSTL

  • jstl_el.jar:包含用來處理JSTL表達式語言的類

  • standard.jar:使用JSTL所必需的

請注意JavaServer Faces 的參考實現是一個預覽版(EA),僅僅是對規範的一個簡單實現,也就是說,它還不是十分成熟。另外,現在JavaServer Faces的參考實現不能與Java WSDP 1.1一起協同工作。如果你在Java WSDP 1.1中使用JavaServer Faces ,運行時就會拋出異常,如下圖:

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
2: JavaServer Faces參考實現與Java WSDP 1.1不能協同工作
(點擊放大)

 

如果你沒有Java WSDP 1.0_01而且你想玩一下JavaServer Faces 的話,那麼我建議你用Tomcat ,本文中所有的例子都是基於Tomcat-4.1.24的。當你完成Tomcat的安裝後,在瀏覽器中鍵入http://localhost:8080進行測試,如果沒有什麼問題的話,那麼Tomcat的默認頁面就會出現。下面我們看看JavaServer Faces 所給的例子。很簡單,把c:/path-to-JSF-installation 目錄下的WAR文件拷貝到你Tomcat安裝目錄的webapps子目錄下面。鍵入http://localhost:8080/demo-name就可以運行例子程序。比如,我把cardemo.war拷貝到webapps目錄中,然後在瀏覽器中輸入http://localhost:8080/cardemo,下圖就是我的結果:

 

 


3 JavaServer Faces Cardemo例子
(點擊放大)

 

<未完待續>

其餘部分請參考:

http://www.csdn.net/develop/read_article.asp?id=18705 JavaServer Faces開發Web應用(1)

http://www.csdn.net/develop/read_article.asp?id=18709 JavaServer Faces開發Web應用(3)

http://www.csdn.net/develop/read_article.asp?id=18710 JavaServer Faces開發Web應用(4)

http://www.csdn.net/develop/read_article.asp?id=18712 JavaServer Faces開發Web應用(5)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章