在創建交互式網絡應用方面,java Server Faces(以下建成為JSF)相對于諸如Java Server Pages或Apache Struts等同類技術而言擁有很多優勢。JSF十分清楚地分離了應用邏輯層與用戶界面表示層,提高了網絡應用軟件的維護能力,JSF同時還提供了一個架構用于開發和重用網絡用戶界面組件。
很多網絡應用程序的開發者正在轉移到JSF上來,但他們同時也發現預定義的JSF用戶界面組件受到DHTML功能的限制。一些高級應用,例如監控或商務進程監測,需要和JSF架構兼容的高級視覺組件。
在JSF架構的標準之上開發自定義的用于網絡圖形用戶界面的組件是一件輕松的事情,這些組件可以被應用程序員重用。而且,網絡組件的開發者現在可以提供更加復雜的組件,同時可以保證開發者可以輕松的享受這些組件帶來的優勢和便利。這些JSF用戶界面組件必須簡潔地整合與部署到JSF運行時架構,而且在應用軟件設計過程中,還要較好地整合到提供JSF支持的集成開發環境(IDE)中
除了JSF自帶的基本的用戶界面架構之外,在第一次開發自定義組件的時候,開發者還會碰到一些缺陷和障礙。在這篇文章當中,我們將要介紹如何構建圖形化的JSF組件,這種組件使用純HTML是非常難以實現的。圖形化JSF組件的特色之處在于,不僅需要生成DHTML,而且還需要一些額外的圖形生成與客戶端交互的支持。我們將使用一個圖表組件的例子來演示,這個圖表組件是用來提供圖表和各種客戶端的瀏覽與交互功能。最后,將展示如何將圖表組件整合到支持JSF的集成開發環境中。在理解了這個圖表組件的設計過程之后,開發者將對如何實現圖形化的JSF組件有更深入的理解,希望能夠對他們開發自定義的JSF圖形組件有所幫助。
什么是Java Server Faces?
JSF是一個標準的服務器端架構,用于簡化網絡應用軟件表示層的構建。開發人員可以組裝這些可復用的用戶界面組件來創建網頁,將這些組件綁定到應用程序的數據源,并利用服務器端的事件處理器來處理客戶端事件。依據JSF規范,組件開發者所制作的組件可以簡潔地整合到JSF運行時架構,而且在應用軟件設計過程中,還可以整合到與JSF兼容的集成開發環境中。JSR 127規范定義了這樣的JSF架構,還同時提供了比如輸入欄和按鈕等基本用戶界面組件的可供參考的實現。JSF組件中的絕大部分都符合HTML 2.0標準中的HTML組件和標簽的規范。這些相對簡單的組件對于很多網絡應用程序來講已經足夠了。
然而,很多應用程序,比如監控或監測系統,需要更復雜的數據表示與交互,例如圖表、圖示和映射等。因為在HTML中直接生成復雜圖形的能力有限,所以設計這些高級組件也并不直觀。一種解決方案就是讓服務器端的組件將圖片傳送到客戶端,然而,這會帶來它自身的問題因為最基本的HTML的圖片交互功能是很有限的。所以,最后必須使用javascript來實現用戶的數據瀏覽與交互功能。
創建簡單的JSF組件
本文將這部分將描述一個非常簡單的JSF組件的開發步驟,這個組件的功能是將CSS導入到一個HTML的網頁上。這個簡單組件的描述和代碼將作為基礎知識,為下一部分繼續講解高級JSF圖表組件打下基礎。
圖1 展示了如何使用組件及其結果
圖1
使用這一組件的好處在于,只要通過JSF動作去改變組件的設定值就能夠改變整個頁面的外觀。
一個JSF組件由一些Java類和配置文件組成,為了創建一個自定義的JSF組件,開發人員需要:
1. 編寫一個擴展JSF基礎組件類的Java類
2. 為默認的渲染工具編寫一個渲染器
3. 編寫一個Java類來描述標簽,這個標簽將用于jsp頁面
4. 編寫一個標簽庫定義文件
5. 編寫一個JSF配置文件
新聞熱點
疑難解答