用JavaServer Faces開發Web應用(1)

JavaServer Faces開發Web應用

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

 

http://developer.java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/

by  Qusay H. Mahmoud
May 2003

 

 

當你爲服務器端應用開發用戶界面時,你可以有很多選擇,使用JspServletJava開發者一般使用HTML的用戶界面組件來構建用戶界面。這個主要是因爲HTML的用戶界面組件是所有的Web瀏覽器都支持的最小子集。當然,這樣的Web應用與傳統的獨立胖客戶端相比缺乏富有表現力的用戶界面,因而功能更少,可用性也沒有那麼好。雖然applet可以用來設計出富有表現力的用戶界面,不過Web頁面的開發者可能並不精通Java程序設計。

 

另外,如果你參與一個大型Web系統開發的話,你可能會遇到一些技術上的難題,比如說如何實現一個查詢構件或一個表瀏覽構件等數據庫應用的組件等等等等。開發這些定製的組件需要專門的技術,而且要花一些時間來編譯和測試新的庫。在一個理想的情況下,開發者可以使用已經預先編譯並且測試通過的,同時具有高度可配置性的組件來集成到自己的開發環境中。

 

JavaServer Faces 是一種可以開發富有表現力的用戶界面的Web應用的服務器端技術,在它的幫助下,你可以解決像創建定製的用戶界面組件這樣的技術問題。這是因爲,JavaServer Faces技術是一項開發運行在服務器端的Web應用程序的一個用戶界面框架,它可以反過來向客戶端提供用戶界面。沒錯,用戶界面的代碼運行在服務器端,然而卻可以響應客戶端產生的各種事件。

 

其實現在已經存在多種可以開發富有表現力的用戶界面的技術,比如Flash Swinglets Jade等。不過,這些解決方案都是專有的,而且開發工具一般也總是侷限於某一個提供商。而JavaServer Faces最重要的就是它是一個標準,這意味着開發者不會被鎖定到某一個單獨的開發商。制定這個規範的專家組由Java開發社區的主要工具提供商的代表組成,這樣開發者就不會缺乏可以選擇的工具,而且他們可以使用現在使用的工具的最新版本。不過雖然各個開發商在制定規範的事情上相互合作,他們具體的實現卻又相互競爭。這個就可以讓開發者受益,他們可以使用工具商實現的各種特性,或是選擇各種定製組件。

 

JavaServer Faces技術基於模型視圖控制器(MVC)的把應用邏輯和表現相分離的思想,所以如果你理解MVC模式的話,你就可以真正理解JavaServer Faces技術。

本文是一個快速入門的教程,通過本文的學習,你可以開始使用JavaServer Faces 進行開發你自己的應用程序。同時本文還提供了一些其他的內容:

  • JavaServer Faces 技術的簡介

  • 使用JavaServer Faces 的好處

  • 描述了JavaServer Faces內在結構

  • 描述了JavaServer Faces技術的構成

  • 通過一個使用JavaServer Faces 進行開發的例子,給你最直觀的感覺

  • 提供了一個例程,你可以修改一下用到自己的開發中

不過本文並沒有包含如何開發定製組建的內容。

 

JavaServer Faces概覽

 

JavaServer Faces是一項由Sun公司倡導的技術(其它相關可以參考JSR 127),它的主要目的是提供開發Web應用的用戶界面的一個標準框架。如前所述,JavaServer Faces可以讓你開發一個運行在Java服務器上的Web應用,它可以向客戶端提供用戶界面。 這個技術使用Servlet作爲控制器,提供了富有表現力的組件模型,實現了事件處理以及模型表現。從而提供了一個Web應用的生命週期管理。

 

JavaServer Faces有兩個主要部分組成:

  1. Java APIs用來提供UI組件、狀態管理、事件處理和檢查用戶輸入數據的功能。這些API同時支持國際化並且容易使用。
  2. 用來在一個JSP 頁面內表現JavaServer Faces用戶界面的JSP定製標記庫。頁面開發者可以通過這個標記庫來開發豐富多彩的網頁。

下圖給出了客戶端、服務器端和JavaServer Faces 之間的關係。

 

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
1: UI 運行在服務器上

 

 

這裏,這個JSP頁面不是硬編碼標記語言,而是通過使用JavaServer Faces定製標記庫(tag library)來開發用戶界面。應用程序的UI用來管理JSP頁面所包含的組件對象。

 

很多人都可以享受到這項技術所帶來的好處:

  • 使用標記語言(比如HTML)的網頁開發者可以使用JSP標記庫開發出豐富多彩的JavaServer Faces 用戶界面。

  • 應用開發者可以專注於開發模型對象和進行事件處理。

  • 組件開發者可以在JavaServer Faces 所提供組件的基礎上開發新的定製組件。

  • 工具提供商可以把JavaServer Faces 技術集成到新版本的開發工具中用來簡化基於Web的多層應用的開發。

這項技術同時也打開了Web用戶界面組件複用的市場。開發者和工具提供商可以像搭積木一樣使用JavaServer Faces定製組件來構建用戶界面。

 

JavaServer Faces 的一個優勢就是使用模型、視圖、控制器架構(MVC)來清晰地分離應用邏輯和表現。您可能會覺得這個可能會影響到那些使用現存Web框架技術比如Struts的那些人。不過請注意,JavaServer Faces Struts並不是相互競爭的產品,事實上它們可以協作得很好。不過,JavaServer Faces確實比Struts有一些優勢。舉例來說,在Struts中,只有一種方式來表現一個元素,而JavaServer Faces卻提供了多種方式來表現一個元素。選擇適當的表現方式設計符合要求的表現是網頁設計師的事情,應用開發人員並不需要知道使用哪一種機制來表示組件。(關於如何把JavaServer Faces Struts集成在一起,請參考integration of JavaServer Faces and Struts)事實上,讀者可能已經注意到,Sun公司的Craig McClanahan就是Struts的作者,但他同時也是JavaServer Faces規範制定的頭面人物。

<未完待續>

其餘部分請參考:

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

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)

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