javaee筆記(10)JSF

介紹

JSF,即Java Server Faces,是JPC(Java Community Process)推出的一種基於組件構建Web應用的新技術,它能讓開發工具擁有可視化拖曳組件構建服務端Web頁面,併爲組件提供事件編程機制。JDK5後JSF被正式納入Java EE規範。
JSF提供了一種以組件爲中心來開發Java Web用戶界面的方法,簡化了Web應用開發的複雜性。在開發工具的支持下,應用開發可以簡單到只需將UI組件拖放到頁面上,然後利用豐富而強健的JSF API爲他們添加豐富的功能即可。
JSF遵循結構良好的MVC(模型一視圖一控制器)設計模式,確保了應用程序具有更高的可維護性。
本質上,JSF是一種基於Java構建Web應用程序的服務端用戶接口(UI)組件框架。它定義了一套UI組件和一套標準的API。所有UI組件都可以直接用在網頁裏,而且大部分組件幾乎都是HTML form系列標記的翻版。
JSF API爲組件提供了強大的功能。與組件關聯的驗證器能進行數據驗證和完成前後臺數據傳送。點擊鏈接或按下按鈕時會觸發事件,以便通過事件處理代碼改變其他組件的狀態或運行某段後臺程序。利用導航機制,可以方便地控制頁面的跳轉。
JSF結合了第三方開源框架Struts和Swing的優點,得到了衆多開發工具提供商和應用開發者的認可。

工作原理

JSF爲UI組件聲明瞭它們可能發生的事件(諸如數值改變、按下按鈕等),並配置處理該事件的監聽器。
UI組件可以搭配不同的渲染器(renderer)從而呈現不同的外觀。
JSF通過輔助性的工具,如驗證器(validator)、轉換器(converter)等對前/後臺數據執行驗證和類型轉換 。
在這裏插入圖片描述
JSF應用是事件驅動的。用戶動作引發頁面中預置的事件,從而觸發監聽器處理代碼的執行。實際上,在事件發生時(如用戶單擊了一個按鈕),相應的事件消息通過HTTP發往了服務器,然後由服務器端名爲FacesServlet的特殊Servlet對該事件進行處理

JSF請求總是交由FacesServlet來處理,這是在Web應用的部署描述文件web.xml中指定的。在JSF應用的web.xml中有一個Servlet和一個Servlet-mapping標籤。類似於下面的代碼:

<Servlet>
   <Servlet-name>FacesServlet</Servlet-name>
   <Servlet-class>javax.faces.webapp.FacesServlet</Servlet-class>
   <load-on-startup>0</load-on-startup>
</Servlet>
<Servlet-mapping>
   <Servlet-name>FacesServlet</Servlet-name>
   <url-pattern>*.faces</url-pattern>
</servlet-mapping>

這段代碼中的servlet-mapping標籤中的url-pattern元素表明,所有請求的URL對應的JSP文件都要改用.faces作爲擴展名

JSF的組成

JSF應用也需要運行在Servlet容器中,通常包含以下幾個組成部分:
包含UI標籤的頁面(JSP頁面);
輔助Bean類,用於傳遞數據和執行處理;
驗證器、轉換器、事件監聽器;
其它JavaBean組件;
應用配置文件(web.xml、faces-config.xml)。

JSF類庫JSF技術實現者(提供商)提供,以JAR包提供,需要在自己的Web應用中導入。
SUN官方JSF參考實現提供了一組基本的UI組件,包括兩個組件庫:HTML組件庫和Core庫,前者映射了標準的HTML輸入元素,後者提供輔助開發處理(如國際化、驗證、數據轉換等)。JSF API還允許擴展和創建定製UI組件。
還有不少第三方JSF實現,如Oracle的ADF Faces就是一個完全符合JSF規範的功能更強大的JSF實現庫,包括多種呈現器、高級表格、顏色和日期選擇器以及菜單、命令按鈕、轉移選擇器和進度指示等)。
由Apache開源社區推出的MyFaces也是一個不錯的JSF實現庫,它對JSF基本UI組件進行了增強,如集成了Tiles支持、支持JavaScript菜單和樹控件等。

JSF開發步驟

不管是否使用IDE開發環境,使用JSF框架開發Web應用通常遵循以下三個步驟:
(1) 視圖設計
利用開發工具,可視化地快速構建Web用戶界面,並將頁面組件與後臺JavaBean綁定。
(2) 模型設計
JSF框架實現了應用程序邏輯和表示的完全分離。在模型設計部分是編寫稱爲輔助Bean(又叫受管Bean)的JavaBean,完成應用的相關業務邏輯代碼。
手工部署JSF應用時,需要將編譯好的JavaBean類放到Web應用的WEB-INF\classes目錄下(Tomcat環境);利用RAD開發工具(如MyEclipse),則通常會自動把實現了業務邏輯的JavaBean類及相關JAR包自動部署到服務器的相關位置。
(3) 控制器設計
JSF的控制器由web.xml和faces-config.xml兩個配置文件(均在WEB-INF目錄下)完成。web.xml文件用於設置應用主控制器;Faces-config.xml文件設置頁面導航,控制頁面間的跳轉流程。
在MyEclipse中,配置文件的設計基本上由工具自動完成,即使手工配置也是非常簡單的。

1:22開始

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