JSF培訓(xùn)教程ppt課件_第1頁
JSF培訓(xùn)教程ppt課件_第2頁
JSF培訓(xùn)教程ppt課件_第3頁
JSF培訓(xùn)教程ppt課件_第4頁
JSF培訓(xùn)教程ppt課件_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Java Server Faces北京京北方科技股份2021年3月3日主要內(nèi)容1 JSF簡介2 JSF入門3 JSF標(biāo)簽4 JSF數(shù)據(jù)驗證和轉(zhuǎn)換5 JSF表格6 JSF與Struts的區(qū)別1 JSF簡介1.1 什么是JSF1.2 JSF的相關(guān)引見1.3 JSF例如1.1 什么是JSFJava Server Faces (JSF) :符合JavaEE5規(guī)范的Java Web運用框架。JSF提供:規(guī)范的編程接口豐富可擴(kuò)展的組件庫事件驅(qū)動模型JSF經(jīng)過IDE工具支持拖放式開發(fā)。 1.2 JSF相關(guān)引見-JSF的目的目的簡化開發(fā)超越現(xiàn)有Web框架試圖在不同的角度上提供網(wǎng)頁設(shè)計人員、運用程序設(shè)計人員、組

2、件開發(fā)人員處理方案,讓不同技術(shù)的人員可以彼此協(xié)作又不相互關(guān)擾1.2 JSF相關(guān)引見-JSF 體系構(gòu)造 JSF 的主要優(yōu)勢之一就是它既是 Java Web 用戶界面規(guī)范又是嚴(yán)厲遵照模型-視圖控制器 (MVC) 設(shè)計方式的框架。一切與運用程序的用戶交互均由一個前端“Faces Servlet控制器來處置。 1.2 JSF相關(guān)引見-JSF的優(yōu)勢UI組件UI-component 事件驅(qū)動方式用戶界面到業(yè)務(wù)邏輯的直接映射 程序員和網(wǎng)頁設(shè)計人員的分工 懇求處置生命周期的多階段劃分 全面的用戶自定義支持 Web開發(fā)的官方規(guī)范之一1.3 JSF例如-第一個JSF程序如今可以開發(fā)一個簡單的程序了,我們將設(shè)計一個

3、簡單的登入程序,運用者送知稱號,之后由程序顯示運用者稱號及歡迎訊息。 JSF例如-index.jsp-網(wǎng)頁設(shè)計人員 第一個JSF程序 請輸入您的稱號 稱號: JSF例如-UserBean.java-程序開發(fā)人員 public class UserBean private String name; public void setName(String name) = name; public String getName() return name; JSF例如-faces-config.xml-程序開發(fā)人員 /pages/index.jsp login /pages/welcome.jsp u

4、ser net.UserBean session JSF例如-welcome.jsp-網(wǎng)頁設(shè)計人員 第一個JSF程序 您好! 歡迎運用 JavaServer Faces! 2 JSF入門-從例如程序中掌握2.1 JSF 表達(dá)式言語Expression Language 2.2 托管 BeanBacking Bean2.3 JSF導(dǎo)航2.1 JSF 表達(dá)式言語EL 搭配 JSF 標(biāo)簽來運用,是用來存取數(shù)據(jù)對象的一個簡易言語。 以#開場,將變量或運算式放置在 與 之間。#userBEL的變量名也可以程序執(zhí)行過程中所聲明的稱號,或是JSF EL預(yù)定義的隱含對象。#對于Map類型對象,可以運用 . 運

5、算符指定key值來取出對應(yīng)的value,也可以運用 與 來指定。#paramname #someBean.someMap 假設(shè)變量是List類型或陣列的話,那么可以在 中指定索引。#someBean.someList0 2.2 托管 Bean JSF 運用 Bean 來到達(dá)邏輯層與表現(xiàn)層分別的目的,Bean 的管理集中在配置文件中,只需修正配置文件,就可以修正 Bean 之間的相依關(guān)系。 Backing Bean:在真正的業(yè)務(wù)邏輯Bean及UI組件之間搭起橋梁,在Backing Bean中會呼叫業(yè)務(wù)邏輯Bean處置運用者的懇求,或者是將業(yè)務(wù)處置結(jié)果放置其中,等待UI組件取出當(dāng)中的值并顯示結(jié)果給

6、運用者。 托管 Bean在faces-config.xml中集中管理作用域:application :不斷存活session :會話過程request :懇求階段none :需求時,暫時Beans的配置與設(shè)定Bean的根本定義:稱號 類 存活范圍 見JSF例如中Bean的配置可選設(shè)置屬性的初始值 user #user 2.3 JSF導(dǎo)航-Navigation 在例如配置文件的中,我們定義了頁面流程,當(dāng)懇求來自中指定的頁面,并且指定了中的為login時,那么會將懇求導(dǎo)向至所指定的頁面。接下來我們擴(kuò)展程序,讓它可以根據(jù)運用者輸入的稱號與密碼能否正確,決議要顯示歡迎訊息或是將運用者送回原頁面進(jìn)展重新

7、登入。 JSF導(dǎo)航-簡單Navigation首先我們修正一下UserBean中的方法: private String name; private String password; private String errMessage; public String verify() if(!name.equals(justin) | !password.equals(123456) errMessage = 稱號或密碼錯誤; return failure; else return success; JSF導(dǎo)航-簡單Navigation接下來我們修正一下 faces-config.xml 中的頁面流

8、程定義: /pages/index.jsp success /pages/welcome.jsp failure /pages/index.jsp JSF導(dǎo)航-簡單Navigation接下來通知網(wǎng)頁設(shè)計人員Bean稱號與相關(guān)屬性,以及決議頁面流程的verify稱號,我們修正 index.jsp 如下: 請輸入您的稱號 稱號: 密碼: 3 JSF標(biāo)簽中心標(biāo)簽規(guī)范標(biāo)簽輸出類標(biāo)簽輸入類標(biāo)簽命令類標(biāo)簽選擇類標(biāo)簽其他標(biāo)簽JSF中心標(biāo)簽view 創(chuàng)建頂層視圖 subview 創(chuàng)建視圖的子視圖 facet 向組件添加facet param 向組件添加參數(shù) attribute 向組件添加屬性 actionLi

9、stener 在父組件上注冊操作監(jiān)聽器 valueChangeListener 向父組件注冊值變卦監(jiān)聽器 converter 注冊恣意轉(zhuǎn)換器 convertDateTime 注冊日期時間轉(zhuǎn)換器 convertNumber 注冊數(shù)量轉(zhuǎn)換器 validateLength 驗證組件值的長度 validateDoubleRange 驗證組件值的雙精度范圍 validateLongRange 驗證組件值的長整型范圍 validator 向組件添加驗證器 loadBundle 加載資源包 verbatim 向頁面中添加標(biāo)簽 selectItem 指定UISelectOne或UISelectMany組件的一

10、個工程 selectItems 指定UISelectOne或UISelectMany組件的多個工程 JSF規(guī)范標(biāo)簽輸出Outputs 其稱號以output作為開頭,作用為輸出指定的信息或綁定值。輸入Inputs 其稱號以input作為開頭,其作用為提供運用者輸入框。命令Commands 其稱號以command作為開頭,其作用為提供命令或鏈接按鈕。選擇Selections 其稱號以select作為開頭,其作用為提供運用者選項的選取。其它 包括了form、message、graphicImage等等未分類的標(biāo)簽。 規(guī)范HTML標(biāo)簽的屬性屬性名稱適用說明id所有組件可指定id名稱,以讓其它標(biāo)簽或組件

11、參考binding所有組件綁定至UIComponentrendered所有組件是否顯示組件 styleClass所有組件設(shè)定Cascading stylesheet(CSS)value輸入、輸出、命令組件設(shè)定值或綁定至指定的值valueChangeListener輸入組件設(shè)定值變事件處理者converter輸入、輸出組件設(shè)定轉(zhuǎn)換器validator輸入組件設(shè)定驗證器 required輸入組件是否驗證必填輸入框 immediate輸入、命令組件是否為即時事件輸出類標(biāo)簽outputLabel產(chǎn)生 HTML標(biāo)簽,運用for屬性指定組件的client ID,例如:outputLink產(chǎn)生 HTML標(biāo)簽

12、,搭配可幫鏈結(jié)加上參數(shù),一切的參數(shù)都會變成 name=value 的類型附加在鏈接后,value所指定的內(nèi)容也可以是JSF EL綁定。例如: outputText簡單的顯示指定的值或綁定的信息,例如: 輸入類標(biāo)簽inputText顯示單行輸入框,即輸出 HTML標(biāo)簽,其type屬性設(shè)定為text,例如: inputTextarea顯示多行輸入文字區(qū)域,即輸出 HTML標(biāo)簽,例如: inputSecret顯示密碼輸入框,即輸出 HTML標(biāo)簽,其type屬性設(shè)定為password,例如: inputHidden隱藏輸入框,即輸出 HTML標(biāo)簽,其type屬性設(shè)定為hidden,隱藏輸入框的值用于保

13、管一些信息于客戶端,以在下一次發(fā)送表單時一并提交,例如: 命令類標(biāo)簽commandButton顯示一個命令按鈕,即輸出 HTML標(biāo)簽,其type屬性可以設(shè)定為button、submit或reset,預(yù)設(shè)是submit,按下按鈕會觸發(fā) javax.faces.event. ActionEvent,例如: commandLink產(chǎn)生超鏈接,會輸出 HTML標(biāo)簽,而href屬性會有#,而onclick屬性會含有一段JavaScript程序,這個JavaScript的目的是按下鏈接后自動提交表單,詳細(xì)來說其作用就像按鈕,但外觀卻是超鏈接,例如: 選擇類標(biāo)簽 選取框單項選擇單項選擇按鈕單項選擇列表單項選

14、擇菜單復(fù)選復(fù)選框復(fù)選列表復(fù)選菜單選擇類標(biāo)簽的選項itemLabelitemValue 或者value綁定一個傳回javax.faces. model.SelectItem的方法 value綁定至一個提供傳回SelectItem的列表數(shù)組的方法 SelectItem: value, labelvalue綁定至一個提供傳回Map對象的方法Map : label, value其他標(biāo)簽 圖片 排版本體間只能包括JSF組件,假設(shè)想要放入非JSF組件,例如簡單的樣版template文字,那么要運用 包括住。 包裝組件4 JSF數(shù)據(jù)轉(zhuǎn)換與驗證-表單中運用 4.1 轉(zhuǎn)換器Converter協(xié)助模型與視圖之 間

15、的數(shù)據(jù)轉(zhuǎn)換4.2 驗證器Validator協(xié)助進(jìn)展語意檢驗Semantic Validation4.1 規(guī)范轉(zhuǎn)換器HTTP字符串 Java對象對于根本數(shù)據(jù)類型primitive typeJSF會運用javax.faces.Boolean、javax.faces.Byte等自動進(jìn)展轉(zhuǎn)換對于 BigDecimal、BigInteger,那么會運用javax. faces.BigDecimal、javax.faces.BigInteger自動進(jìn)展轉(zhuǎn)換對于DateTime、Number,可以運用、標(biāo)簽進(jìn)展轉(zhuǎn)換,它們各自提供有一些簡單的屬性,可以讓我們在轉(zhuǎn)換時指定一些轉(zhuǎn)換的格式細(xì)節(jié): 4.1 自定義轉(zhuǎn)換

16、器 實現(xiàn)javax.faces.convert.Converter接口,這個接口有兩個要實現(xiàn)的方法:public Object getAsObject(FacesContext context, UIComponent component, String str); public String getAsString(FacesContext context, UIComponent component, Object obj); 在faces-config.xml中注冊: cn.wiztek.converter.User cn.wiztek.converter.UserConverter 在

17、JSF頁面中經(jīng)過converter-id運用轉(zhuǎn)換器: 4.2 規(guī)范驗證器 語法檢驗Synatic Validation 檢查運用者輸入的數(shù)據(jù)能否符合我們所要求的格式,最根本的就是檢查運用者能否填入了欄目值,或是欄目值的長度、大小值等等能否符合要求。三種規(guī)范驗證器: 4.2 自定義驗證器 實現(xiàn)javax.faces.validator.Validator接口中的validate()方法,假設(shè)驗證錯誤,那么丟出一個ValidatorException,它接受一個FacesMessage對象,這個對象接受三個參數(shù),分別表示信息的嚴(yán)重程度INFO、 WARN、ERROR、FATAL、信息概述與詳細(xì)信息

18、內(nèi)容,這些信息將可以運用或標(biāo)簽顯示在頁面上。 在faces-config.xml中注冊驗證器的標(biāo)識Validater ID。經(jīng)過標(biāo)簽并設(shè)定validatorId屬性來運用自定義驗證器。 錯誤信息處置 預(yù)定義的錯誤信息可以運用或標(biāo)簽顯示出來經(jīng)過提供一個信息資源文件可以修正預(yù)定義的錯誤信息MyFaces提供了支持中文的錯誤信息文件Messages_zh_CN.properties 也可以在程序中運用FacesMessage來提供信息 5 JSF表格處置配合來以表格的方式顯示數(shù)據(jù),中只能包括 JSF組件或者是,JSF支持兩種facet:header與footer。分別用以設(shè)定表格的表頭與表尾文字,下

19、面我們來實現(xiàn)一個簡單表格的例子。 5 JSF表格例如 JSF表格數(shù)據(jù)設(shè)定public class TableBean private List userList; public List getUserList() if(userList = null) userList = new ArrayList(); userList.add(new UserBean(caterpillar, 123456); userList.add(new UserBean(momor, 654321); userList.add(new UserBean(becky, 7890); return userLis

20、t; JSF表格款式另外,對于表頭、表尾仍至于每一行列,都可以分別設(shè)定CSS風(fēng)格 6 JSF與Struts的一樣和區(qū)別 一樣點: 聽說JSF的主要擔(dān)任人就是struts的主要作者,所以二者的類似點還是有很多的。都采用taglib來處置表示層:在jsp頁面中,二者都是采用一套標(biāo)志庫來處置頁面的表示和model層的交互。二者都采用了bean來作為和jsp頁面對應(yīng)的model層。該model層保管了jsp頁面上的數(shù)據(jù),同時可以作一些驗證任務(wù),在struts中就是FormBean,在JSF中就是back bean.都采用bean作為控制層,Struts中采用ActionBean來處置業(yè)務(wù)邏輯,對于簡單

21、的運用可以直接在ActionBean中編寫業(yè)務(wù)邏輯代碼,也可以調(diào)用另外的bean或者EJB來處置業(yè)務(wù)邏輯;對于JSF那么采用backing bean來處置業(yè)務(wù)邏輯,同樣,backing bean也可以直接編寫業(yè)務(wù)邏輯或者調(diào)用其他的bean來處置業(yè)務(wù)邏輯。都采用xml配置文件來處置bean的配置,頁面導(dǎo)航等問題,添加了系統(tǒng)的靈敏性。 下面主要引見下幾個區(qū)別:二者的偏重點不同 Struts偏重于控制層,偏重于如何分派和處置用戶的懇求,所以表示層的taglib功能不夠強(qiáng)大。而JSF那么偏重于表示層,實現(xiàn)了大量的規(guī)范組件,允許開發(fā)人員對表示層有更多的控制權(quán),同時JSF實現(xiàn)了一個開放的架構(gòu),允許開發(fā)人員

22、創(chuàng)建本人的組件,或者在現(xiàn)有的組件上承繼,開發(fā)功能更強(qiáng)大的組件。 和jsp 對應(yīng)的model層 在Struts中,jsp和FormBean是嚴(yán)密結(jié)合在一同的,只需寫一個 jsp就必需對應(yīng)一個FormBean,同時jsp上的每個組件都對應(yīng)FormBean中一樣名字的字段。這里不太靈敏,比如,開發(fā)頁面的時候就必需思索后臺的FormBean的實現(xiàn),但此時假設(shè)該頁面沒有FormBean的話那么程序運轉(zhuǎn)時會出錯。在JSF中,JSP頁面中的組件經(jīng)過value屬性和backing bean的字段關(guān)聯(lián),這樣就有比較大的靈敏性,頁面上的每個組件可以對應(yīng)一樣的backing bean,也可以對應(yīng)不同的backing

23、 bean,而且在設(shè)計頁面的時候可以不思索backing bean如何設(shè)計,可以在設(shè)計完頁面之后再思索backing bean的實現(xiàn)問題。關(guān)于數(shù)據(jù)驗證 Struts可以采用在FormBean中的驗證函數(shù)中進(jìn)展驗證,也可以運用validator進(jìn)展驗證。在JSF中,提供了一些規(guī)范的validator.可以對輸入的數(shù)據(jù)做一些簡單的驗證,例如驗證數(shù)值數(shù)據(jù)的范圍,字段能否必填等。另外對于input類型的組件可以經(jīng)過validator屬性關(guān)聯(lián)到backing bean的一個驗證方法上??刂茖?Struts 中經(jīng)過form的action來提交懇求,經(jīng)過ActionServlet來分發(fā)懇求,最后由ActionBean來處置懇求,在Acti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論