歡迎您光臨本站 註冊首頁

JAVA教程之JSF開發(一)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
Java Server Faces(JSF)技術為開發基於網路用戶界面的Java開發者提供了標準的編程介面API以及標記庫.Apache Struts框架的作者Craig McClanahan,協助領導了Sun公司的JSF項目.這使項目能夠容易的從流行的Apache向JSF標準移植得到了保證.就像Struts框架一樣,JSF定義了一套JSP標記,能夠生成與JavaBean屬性綁定在一起的HTML表單元素.
從應用開發者的角度看,兩種框架是很相似的,但是JSF可能將會得到更多的支持.因為JSF是Java的標準.在未來的發展中,有可能所有的J2EE應用伺服器都需要支持JSF(Java Server Faces).
本文包含一個由四個主要部分組成的網路應用:
1. JavaBean類(PBean.java),作為數據模型保存一些文本以及相關屬性:字體、大小、 顏色、擺放位置等;
2. 基於JSF的表單(edit.jsp),使用戶可以為JavaBean的屬性賦值;
3. Java類(PBuilder.java),用給定的文本按照其屬性值生成HTML頁面程序;
4. JSP頁面(view.jsp),顯示生成的HTML頁面.
JavaServer Faces(或者叫JSF)是服務端程序開發新的發展趨勢.它可以使你更輕鬆的的設計程序,你的程序也能夠更容易維護,甚至可能還會使你的工作更有趣.Budi Kurniawan向我們展示了JSF技術,解釋了為什麼JSF如此有用以及它是否實現了所承諾的功能.


圖1:基於JSF的表單
製作JSF表單
當你開發網路應用時,處理HTML表單是最常見的一項任務.一個好的框架能夠節省很多開發時間,因為許多日常的程序操作可以自動的完成或是減少到最低限度只需要在XML文件中用幾行完成.這也有可能簡化使用JSP標記庫的網路開發.
Java Server Faces框架提供了JSP標記,用於描述表單、管理表單狀態、確認用戶輸入以及報錯、將用戶界面組件與JavaBean屬性綁定在一起以及其他許多可提高開發效率的功能.JSF也有豐富的編程介面可用於建立定製的用戶界面(UI)組件,定製驗證類(驗證器validator)以及服務端的事件JianTingQi.
JSF包含兩類標記庫分別叫JSF核心庫與HTML基礎庫.前者提供普通的標記和一些用於在用戶界面組件中註冊驗證器以及事件JianTingQi的標記.後者包含用於描述用戶界面組件的JSP標記,如:按鈕、文本域、複選按鈕、列表等.文件edit.jsp用這些標記建立了表單.兩種標記庫的標準前綴是f和h,並且定義在edit.jsp文件的最前面:
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %>


<f:use_faces>標記是容器標記,必須包含所有在同一頁面中出現的JSF標記.該標記不會產生任何HTML內容,但是它會觸發JSF的內部機制.<h:form>標記產生能夠包含用戶界面元素的HTML元素<form>.
<html> <head> <title>Edit</title>
</head>
<body>
<f:use_faces>
<h:form formName="pform"> ……
</h:form>
</f:use_faces>
</body>
</html>
上面的JSP代碼生成下面的HTML片斷:
<html>
<head>
<title>Edit</title>
</head>
<body>
<form method="post" action="/usingjsf/faces/edit.jsp"> ……
</form>
</body>
</html>
下一部分介紹應用的JavaBean模型.
管理Bean
像其他一些Web框架一樣,JSF將用戶界面從封裝數據以及應用邏輯的對象模型中分離出來.當HTML用戶界面由JSF標記產生時,JSF框架從JavaBean模型獲得數據並設置HTML表單用戶界面組件的屬性狀態.用戶提交表單時,JSF驗證用戶輸入,如果全部正常JSF就將用戶輸入保存到JavaBean模型並且HTTP請求會根據「導航規則」進入下一頁面.如果驗證出現錯誤,JSF回到表單並返回錯誤信息,這樣用戶就可以糾正錯誤輸入.
類Pbean遵循JavaBean規範,實現了java.io.Serializable並為其屬性(文本、大小、字體、顏色、擺放位置、粗體、斜體、下劃線)提供了相應的get及set方法.JSF每一個應用的用戶都創建了一個PBean的實例,該實例存儲在JSP的會話(session)中並在名為faces-config.xml的XML格式配置文件中指定ID.JSF也會根據faces-config.xml文件提供的數據初始化JavaBean實例的屬性值.該XML文件還可能包含其他JSF配置參數,如:導航規則.
下面的XML程序片斷包含由JSF所管理的JavaBean的聲明:
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.suncom/dtd/web-facesconfig_1_0.dtd";>
<faces-config> ……
<managed-bean>
<managed-bean-name>pbean</managed-bean-name>
<managed-bean-class> com.devsphere.articles.usingjsf.PBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property> <property-name>text</property-name>
<null-value/>
</managed-property>
<managed-property>
<property-name>size</property-name>
<value>3</value>
</managed-property>
<managed-property>
<property-name>font</property-name>


<values>
<value>Arial</value>
<value>Courier New</value>
</values>
</managed-property>
<managed-property>
<property-name>color</property-name>
<value>green</value>
</managed-property>
<managed-property>
<property-name>align</property-name>
<value>left</value>
</managed-property>
<managed-property>
<property-name>bold</property-name>
<value>false</value>
</managed-property>
<managed-property>
<property-name>italic</property-name>
<value>true</value>
</managed-property>
<managed-property>
<property-name>underline</property-name>
<value>false</value>
</managed-property>
</managed-bean>
</faces-config>
由JSF創建的管理bean能夠根據<managed-bean-scope>元素的值而存儲在請求(request)、會話(session)或應用的範圍內.<managed-bean-scope>元素的值可為空值.如果一個對象已經指定了ID並註冊在給定的範圍內那麼JSF不會建立JavaBean實例


[火星人 ] JAVA教程之JSF開發(一)已經有1004次圍觀

http://coctec.com/docs/java/show-post-59918.html