JavaServer Faces應用程序的構成
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一個JavaServer Faces 應用程序跟其它基於Web的Java應用程序一樣,運行在Java Servlet容器內,包含以下部分:
- JavaBeans 組件(或模型對象)包含應用特有的功能和數據
- 事件監聽器(Event listeners )
- JSP 頁面
- 服務器端輔助類
- 用來表現UI組件的定製標記庫(tag library)
- 用來表示事件處理(event handler)和數據校驗(validator)的定製標記庫(tag library)
- UI 組件用來表示服務器上有狀態的對象(stateful objects)
- 數據校驗器(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_button和command_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.jar:J2SE 集合框架(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" />
|
如果你沒有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,下圖就是我的結果:
|
<未完待續>
其餘部分請參考:
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)