使用JSF(Java Server Faces)開發(fā)(一)chris 發(fā)表于2003-10-16 作者:fpwang 評價:0/0 評論數(shù):0 點(diǎn)擊數(shù):3876 [收藏]摘要: 本文Matrix永久鏡像:http://www./resource/article/0/557.html 說明:本文可能由Matrix原創(chuàng),,也可能由Matrix的會員整理,,或者由 Matrix的Crawler在全球知名Java或者其他技術(shù)相關(guān)站點(diǎn)抓取并永久 保留鏡像,Matrix會保留所有原來的出處URL,并在顯著地方作出說明,, 如果你發(fā)覺出處URL有誤,,請聯(lián)系Matrix改正. Java Server Faces(JSF)技術(shù)為開發(fā)基于網(wǎng)絡(luò)用戶界面的Java開發(fā)者提供了標(biāo)準(zhǔn)的編程接口API以及標(biāo)記庫。Apache Struts框架的作者Craig McClanahan,,協(xié)助領(lǐng)導(dǎo)了Sun公司的JSF項(xiàng)目,。這使項(xiàng)目能夠容易的從流行的Apache向JSF標(biāo)準(zhǔn)移植得到了保證。就像Struts框架一樣,,JSF定義了一套JSP標(biāo)記,,能夠生成與JavaBean屬性綁定在一起的HTML表單元素。從應(yīng)用開發(fā)者的角度看,,兩種框架是很相似的,,但是JSF可能將會得到更多的支持。因?yàn)镴SF是Java的標(biāo)準(zhǔn),。在未來的發(fā)展中,,有可能所有的J2EE應(yīng)用服務(wù)器都需要支持JSF(Java Server Faces)。
Sun公司在已經(jīng)發(fā)布的免費(fèi)下載開發(fā)包Java Web Services Developer Pack 1.2 (http://java./webservices/downloads/webservicespack.html)中,,包括了JSF詳細(xì)說明(JSF Specification Version 1.0, Public Review Draft 2)的參考實(shí)現(xiàn)(Early Access 4 — EA4),。EA4版本實(shí)現(xiàn)了許多新特性:動作、beans管理和導(dǎo)航規(guī)則,。本文將集中介紹這些新特性以及展示如何從JSF的開發(fā)中得到好處以便建立表單,,確認(rèn)用戶輸入以及將用戶界面組件與JavaBean屬性綁定起來。 本文包含一個由四個主要部分組成的網(wǎng)絡(luò)應(yīng)用: 1. JavaBean類(PBean.java),,作為數(shù)據(jù)模型保存一些文本以及相關(guān)屬性:字體,、大小、 顏色,、擺放位置等,; 2. 基于JSF的表單(edit.jsp),使用戶可以為JavaBean的屬性賦值,; 3. Java類(PBuilder.java),,用給定的文本按照其屬性值生成HTML頁面程序; 4. JSP頁面(view.jsp),,顯示生成的HTML頁面,。 注: 源代碼下載地址:http://www./onjava/2003/09/03/examples/usingjsf-src.zip 相關(guān)文檔 原文:Introducing JavaServer Faces(http://www./pub/a/onjava/2003/07/30/jsf_intro.html) 譯文:http://www./forum_view.asp?forum_id=14&view_id=658 JavaServer Faces(或者叫JSF)是服務(wù)端程序開發(fā)新的發(fā)展趨勢。它可以使你更輕松的的設(shè)計程序,,你的程序也能夠更容易維護(hù),,甚至可能還會使你的工作更有趣。Budi Kurniawan向我們展示了JSF技術(shù),,解釋了為什么JSF如此有用以及它是否實(shí)現(xiàn)了所承諾的功能,。 圖1:基于JSF的表單 制作JSF表單 當(dāng)你開發(fā)網(wǎng)絡(luò)應(yīng)用時,,處理HTML表單是最常見的一項(xiàng)任務(wù)。一個好的框架能夠節(jié)省很多開發(fā)時間,,因?yàn)樵S多日常的程序操作可以自動的完成或是減少到最低限度只需要在XML文件中用幾行完成,。這也有可能簡化使用JSP標(biāo)記庫的網(wǎng)絡(luò)開發(fā)。Java Server Faces框架提供了JSP標(biāo)記,,用于描述表單,、管理表單狀態(tài)、確認(rèn)用戶輸入以及報錯,、將用戶界面組件與JavaBean屬性綁定在一起以及其他許多可提高開發(fā)效率的功能,。JSF也有豐富的編程接口可用于建立定制的用戶界面(UI)組件,定制驗(yàn)證類(驗(yàn)證器validator)以及服務(wù)端的事件監(jiān)聽器,。 JSF包含兩類標(biāo)記庫分別叫JSF核心庫與HTML基礎(chǔ)庫,。前者提供普通的標(biāo)記和一些用于在用戶界面組件中注冊驗(yàn)證器以及事件監(jiān)聽器的標(biāo)記。后者包含用于描述用戶界面組件的JSP標(biāo)記,,如:按鈕,、文本域、復(fù)選按鈕,、列表等,。文件edit.jsp用這些標(biāo)記建立了表單。兩種標(biāo)記庫的標(biāo)準(zhǔn)前綴是f和h,,并且定義在edit.jsp文件的最前面:
<f:use_faces>標(biāo)記是容器標(biāo)記,,必須包含所有在同一頁面中出現(xiàn)的JSF標(biāo)記。該標(biāo)記不會產(chǎn)生任何HTML內(nèi)容,,但是它會觸發(fā)JSF的內(nèi)部機(jī)制,。<h:form>標(biāo)記產(chǎn)生能夠包含用戶界面元素的HTML元素<form>。
上面的JSP代碼生成下面的HTML片斷: <html> 下一部分介紹應(yīng)用的JavaBean模型,。 管理Bean 像其他一些Web框架一樣,,JSF將用戶界面從封裝數(shù)據(jù)以及應(yīng)用邏輯的對象模型中分離出來。當(dāng)HTML用戶界面由JSF標(biāo)記產(chǎn)生時,,JSF框架從JavaBean模型獲得數(shù)據(jù)并設(shè)置HTML表單用戶界面組件的屬性狀態(tài),。用戶提交表單時,JSF驗(yàn)證用戶輸入,,如果全部正常JSF就將用戶輸入保存到JavaBean模型并且HTTP請求會根據(jù)“導(dǎo)航規(guī)則”進(jìn)入下一頁面。如果驗(yàn)證出現(xiàn)錯誤,,JSF回到表單并返回錯誤信息,,這樣用戶就可以糾正錯誤輸入。 類Pbean遵循JavaBean規(guī)范,,實(shí)現(xiàn)了java.io.Serializable并為其屬性(文本,、大小,、字體、顏色,、擺放位置,、粗體、斜體,、下劃線)提供了相應(yīng)的get及set方法,。JSF每一個應(yīng)用的用戶都創(chuàng)建了一個PBean的實(shí)例,該實(shí)例存儲在JSP的會話(session)中并在名為faces-config.xml的XML格式配置文件中指定ID,。JSF也會根據(jù)faces-config.xml文件提供的數(shù)據(jù)初始化JavaBean實(shí)例的屬性值,。該XML文件還可能包含其他JSF配置參數(shù),如:導(dǎo)航規(guī)則,,我們將在后面的章節(jié)介紹,。 下面的XML程序片斷包含由JSF所管理的JavaBean的聲明: <?xml version="1.0"?> 由JSF創(chuàng)建的管理bean能夠根據(jù)<managed-bean-scope>元素的值而存儲在請求(request)、會話(session)或應(yīng)用的范圍內(nèi),。<managed-bean-scope>元素的值可為空值,。如果一個對象已經(jīng)指定了ID并注冊在給定的范圍內(nèi)那么JSF不會建立JavaBean實(shí)例。 |
|