<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-28  評(píng)論-15  文章-81  trackbacks-0

    什么是 JSF?

    JavaServer Faces (JSF) 是一種用于構(gòu)建 Web 應(yīng)用程序的新標(biāo)準(zhǔn) Java 框架。它提供了一種以組件為中心來開發(fā) Java Web 用戶界面的方法,從而簡(jiǎn)化了開發(fā)。JavaServer Faces 還引起了廣大 Java/Web 開發(fā)人員的興趣。“企業(yè)開發(fā)人員”和 Web 設(shè)計(jì)人員將發(fā)現(xiàn) JSF 開發(fā)可以簡(jiǎn)單到只需將用戶界面 (UI) 組件拖放到頁面上,而“系統(tǒng)開發(fā)人員”將發(fā)現(xiàn)豐富而強(qiáng)健的 JSF API 為他們提供了無與倫比的功能和編程靈活性。JSF 還通過將良好構(gòu)建的模型-視圖-控制器 (MVC) 設(shè)計(jì)模式集成到它的體系結(jié)構(gòu)中,確保了應(yīng)用程序具有更高的可維護(hù)性。最后,由于 JSF 是通過 Java Community Process (JCP) 開發(fā)的一種 Java 標(biāo)準(zhǔn),因此開發(fā)工具供應(yīng)商完全能夠?yàn)?JavaServer Faces 提供易于使用的、高效的可視化開發(fā)環(huán)境。

    JSF 體系結(jié)構(gòu)

    JavaServer Faces 的 MVC 實(shí)現(xiàn)

    JSF 的主要優(yōu)勢(shì)之一就是它既是 Java Web 用戶界面標(biāo)準(zhǔn)又是嚴(yán)格遵循模型-視圖-控制器 (MVC) 設(shè)計(jì)模式的框架。用戶界面代碼(視圖)與應(yīng)用程序數(shù)據(jù)和邏輯(模型)的清晰分離使 JSF 應(yīng)用程序更易于管理。為了準(zhǔn)備提供頁面對(duì)應(yīng)用程序數(shù)據(jù)訪問的 JSF 上下文和防止對(duì)頁面未授權(quán)或不正確的訪問,所有與應(yīng)用程序的用戶交互均由一個(gè)前端“Faces”servlet(控制器)來處理。

    圖 1:JavaServer Faces 的 MVC 實(shí)現(xiàn)

    JSF 生命周期

    Faces Controller servlet 充當(dāng)用戶和 JSF 應(yīng)用程序之間的紐帶。它在明確限定的 JSF 生命周期(規(guī)定了用戶請(qǐng)求之間的整個(gè)事件流)的范圍內(nèi)工作。例如,一收到訪問 JSF 應(yīng)用程序的初始 Web 請(qǐng)求,F(xiàn)aces Controller servlet 便通過首先準(zhǔn)備 JSF 上下文(存放所有應(yīng)用程序數(shù)據(jù)的一個(gè) Java 對(duì)象)來處理請(qǐng)求。然后控制器把用戶指引到所請(qǐng)求的頁面。該頁面通常使用簡(jiǎn)單的表達(dá)式語言來處理來自 JSF 上下文的應(yīng)用程序數(shù)據(jù)。一收到后續(xù)請(qǐng)求,控制器就更新所有模型數(shù)據(jù)(假設(shè)輸入了新數(shù)據(jù))。JSF 開發(fā)人員可以通過編程的方式在應(yīng)用程序運(yùn)行期間隨時(shí)訪問整個(gè) JSF 生命周期,從而可以隨時(shí)對(duì)應(yīng)用程序的行為進(jìn)行高度控制。

    JavaServer Faces 的用戶界面組件

    JavaServer Faces 的真正威力在于它的用戶界面組件模型。在該模型中,應(yīng)用程序完全用組件集合構(gòu)建,這些組件可以針對(duì)多種客戶端類型用不同的方式來進(jìn)行顯示。與其他專有技術(shù)(如 ASP.Net)有點(diǎn)類似,JSF 的 UI 組件模型技術(shù)使開發(fā)人員能夠使用預(yù)先構(gòu)建的用戶界面 (UI) 組件來構(gòu)建 Web 用戶界面(而非完全從頭構(gòu)建用戶界面),從而提供了前所未有的開發(fā)效率。JSF UI 組件有多種形式,可以簡(jiǎn)單到只是顯示文本的 outputLabel,或者復(fù)雜到可以表示來自數(shù)據(jù)集合(如數(shù)據(jù)庫(kù)表)的表格化數(shù)據(jù)的 dataTable

    JavaServer Faces 規(guī)范在其參考實(shí)施中提供了一組基本 UI 組件,這些組件本身是非常有用的。它們包括兩個(gè)組件庫(kù),即“HTML”組件庫(kù) — 它大部分映射了標(biāo)準(zhǔn)的 HTML 輸入元素;以及“核心”庫(kù) — 它輔助常見的應(yīng)用程序開發(fā)任務(wù)(如,國(guó)際化和驗(yàn)證/轉(zhuǎn)換輸入數(shù)據(jù))。除了提供一個(gè)基本 UI 組件庫(kù)之外,JSF API 還提供了擴(kuò)展和創(chuàng)建定制 JSF UI 組件的功能,從而在基本組件之上提供更多功能。

    其他用戶界面組件庫(kù)

    由于 JSF API 的豐富性和靈活性,許多 Java 開發(fā)人員開始創(chuàng)建新的 JSF 組件庫(kù)和實(shí)現(xiàn)。Oracle 的 ADF Faces 是一個(gè)完全符合 JSF 規(guī)范的組件庫(kù),它為 JSF 應(yīng)用程序開發(fā)提供了一組廣泛的增強(qiáng) UI 組件。這些組件包括針對(duì)每種客戶端類型的多種呈現(xiàn)器、高級(jí)表格、顏色和日期選擇器以及大量通用組件(如菜單、命令按鈕、轉(zhuǎn)移選擇器和進(jìn)度指示計(jì))。

    圖 2:Oracle 的 ADF Faces JSF UI 組件

    除了 Oracle 的 ADF Faces 之外,還有其他新的 JSF 組件庫(kù)開始從開放源代碼社區(qū)和軟件供應(yīng)商社區(qū)中出現(xiàn)。MyFaces 就是一個(gè)新 JSF UI 組件庫(kù)的例子,它通過 Apache 作為一個(gè)開放源代碼項(xiàng)目提供的。Myfaces 還是對(duì) JSF 基本 UI 組件的增強(qiáng),它擁有更廣泛的 UI 功能,如集成的 Tiles 支持、支持 Javascript 的菜單和樹控件。

    圖 3:開放源代碼的 MyFaces 實(shí)現(xiàn)和 UI 組件庫(kù)

    JSF UI 組件的可插入呈現(xiàn)技術(shù)

    JSF UI 組件技術(shù)最引人注目一個(gè)方面就是它的可插入呈現(xiàn)功能。JSF UI 組件能夠根據(jù)查看組件的客戶端的類型來以不同方式呈現(xiàn)自身。例如,HTML 瀏覽器將看到特定 UI 組件的“HTML 瀏覽器友好”版本,而支持無線或 WAP 的微型設(shè)備將看到同一 UI 組件的“WML 友好”版本!JSF 通過解除 UI 組件與其呈現(xiàn)邏輯之間的耦合從而能夠?yàn)橥?UI 組件創(chuàng)建多個(gè)呈現(xiàn)器實(shí)現(xiàn)了這一功能。不同的呈現(xiàn)器可以與 UI 組件相關(guān)聯(lián),在運(yùn)行時(shí) UI 組件可以根據(jù)請(qǐng)求的客戶端類型決定使用哪個(gè)呈現(xiàn)器。

    圖 5:一個(gè) ADF Faces 表格組件針對(duì)無線客戶端和 HTML 客戶端進(jìn)行了不同的呈現(xiàn)

    還應(yīng)當(dāng)指出的是,由于 JSF 的可插入呈現(xiàn)功能,使得 JSF UI 組件能夠顯示任何類型的數(shù)據(jù),無論它是標(biāo)記數(shù)據(jù)(如 HTML、XML、WML 等)還是二進(jìn)制數(shù)據(jù)。例如,UI 組件還可以顯示二進(jìn)制數(shù)據(jù),如圖像流或不同的文檔類型,如 SVG、PDF 和 Word。

    一個(gè)新的 JSF 組件開發(fā)人員社區(qū)

    隨著 JSF 開發(fā)人員和擁護(hù)者社區(qū)的不斷壯大,現(xiàn)在有幾個(gè)網(wǎng)站致力于進(jìn)一步推動(dòng)獨(dú)立的 JSF 開發(fā)。JSFCentral 就是一個(gè)完全為 JSF 開發(fā)社區(qū)服務(wù)的新網(wǎng)站。它包含 JSF 技術(shù)信息、產(chǎn)品/組件信息以及大量與 JSF 相關(guān)的文章。

    圖 4:JSFCentral — 一個(gè)免費(fèi)的 Javaserver Faces 社區(qū)

    (JSFCentral 的地址是:http://jsfcentral.com

    JSF 開發(fā)工具

    因?yàn)?JavaServer Faces 是一種標(biāo)準(zhǔn)的 Java 技術(shù),因此軟件開發(fā)工具完全能夠?yàn)?JavaServer Faces 提供高級(jí)的集成開發(fā)工具支持。多個(gè)供應(yīng)商現(xiàn)在不同程度地支持 JSF 開發(fā),這大大提高了 JSF 的易用性和功能。Oracle、Sun、Borland 和 IBM 都為 JavaServer Faces 提供了開發(fā)環(huán)境。由于開發(fā)工具供應(yīng)商在競(jìng)相提供更好、更簡(jiǎn)單和更多的開發(fā)環(huán)境,因此基于 IDE 的 JSF 開發(fā)擁有美好的前景!

    圖 6:Oracle 的 JDeveloper 提供高效、可視化的 JSF 開發(fā)體驗(yàn)

    總結(jié)

    JavaServer Faces 通過提供模型-視圖-控制器設(shè)計(jì)模式的一個(gè)簡(jiǎn)潔實(shí)現(xiàn),同時(shí)在不犧牲開發(fā)能力和靈活性的前提下提供高效的以組件為中心的開發(fā),解決了 Java Web 開發(fā)的許多歷史問題。此外,因?yàn)?JSF 是一種 Java 標(biāo)準(zhǔn),因此多個(gè)軟件供應(yīng)商將繼續(xù)提供始終高效的開發(fā)環(huán)境,這些開發(fā)環(huán)境毫無疑問將達(dá)到或很可能超過專有的可視化開發(fā)環(huán)境。請(qǐng)繼續(xù)關(guān)注!

    posted on 2007-10-17 01:01 譚明 閱讀(186) 評(píng)論(0)  編輯  收藏 所屬分類: JSF

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 免费精品国产自产拍在线观看图片| 24小时日本在线www免费的| 亚洲人成电影亚洲人成9999网| 国产乱子精品免费视观看片| 国产精品亚洲一区二区三区久久| 在线观看亚洲精品福利片| 永久在线观看www免费视频| 风间由美在线亚洲一区| 亚洲成a人片在线观看无码| 成人在线免费观看| 国产免费区在线观看十分钟| 亚洲午夜国产精品| 亚洲人成中文字幕在线观看| 希望影院高清免费观看视频| 国产精品hd免费观看| 亚洲中文字幕无码爆乳| 77777亚洲午夜久久多人| 最近中文字幕无免费视频| 国产在线一区二区综合免费视频| 亚洲欧美综合精品成人导航| 久久精品国产亚洲| 亚洲XX00视频| 成年女人免费视频播放77777 | 黄色视屏在线免费播放| 亚洲三级在线观看| 亚洲成色www久久网站夜月| 免费人成视频在线观看不卡| 9久9久女女免费精品视频在线观看| 91成人免费观看在线观看| 亚洲第一街区偷拍街拍| 亚洲成人在线免费观看| 日本红怡院亚洲红怡院最新 | 亚洲AV永久纯肉无码精品动漫| 又色又污又黄无遮挡的免费视| 无码国产精品一区二区免费| 无码av免费一区二区三区| 亚洲精品视频免费 | 女人18毛片a级毛片免费| 亚洲免费福利视频| 无码国产精品一区二区免费3p| 中文字幕在线观看免费|