



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
在JSF的頁面代碼當(dāng)中,通過數(shù)據(jù)綁定,我們把控件的value值,與某個后臺的數(shù)據(jù)bean關(guān)聯(lián)起來。而在前述的生命周期部分,我們看到,當(dāng)一個 JSF請求到達時,他需要經(jīng)歷Restore View,Apply Request Value等步驟,而Apply Request Value部分的工作,就是把請求當(dāng)中的值綁定到這個后臺的bean之中,因此,我們不需要考慮頁面中的Form值如何傳入到后臺的bean當(dāng)中。 進 一步,如果錄入控件的value屬性,和命令控件的action屬性都是綁定在同一個bean上的話,那么在頁面跳轉(zhuǎn)時,我們可以直接訪問到bean的屬 性值。但是為了不污染模型,和實現(xiàn)控制與模型的分離,一般情況下,我們需要把輸入控件的value值綁定到數(shù)據(jù)bean,而把命令控件的action值綁 定到控制bean,由于兩個bean不是同一個,所以,控制bean需要一種方法來獲取數(shù)據(jù)bean中的屬性值。 ii. 代碼: 配置文件: user nick.User session action nick.Action session 模型代碼: package nick; public class User private String id = Nick; public void setId(String id) this.id = id; public String getId() return this.id; package nick; public class Action public String regist() ValueBinding binding = Util.getValueBinding(#user); User user = (User) binding.getValue(FacesContext.getCurrentInstance(); return regist; 頁面代碼: Test 注:頁面代碼當(dāng)中把輸入控件的value綁定到了user的id上,把命令控件的action值綁 定到action的regist上。當(dāng)用戶點擊登陸按鈕時,action的regist()方法將會被調(diào)用, 而在該方法內(nèi)部,為了獲取之前頁面中的信息,我們可以使用ValueBinding類。該類使用 的數(shù)據(jù)綁定表達式與頁面中的類似。 b) 控制器到頁面: i. 說明:通過之前的敘述,我們可以發(fā)現(xiàn),當(dāng)我們需要把數(shù)據(jù)從控制器傳到頁面時,我們同樣可以使用數(shù)據(jù)綁定的方式,因為,當(dāng)我們通過數(shù)據(jù)綁定表達式,獲取到某 個頁面當(dāng)中所使用的模型實例時,便可以在該實例上直接調(diào)用對應(yīng)的set()方法,來設(shè)定所希望的值。 7 插件功能: a) Converter(轉(zhuǎn)換): i. 說明:當(dāng)模型中的某個字段需要在頁面上顯示時,她需要先被轉(zhuǎn)換為字符串類型;而用戶在頁面輸入的字符串值,在傳到模型中時也需要根據(jù)模型對應(yīng)字段的類型, 進行一個轉(zhuǎn)換。另外,由于國際化的要去,模型中的值在不同的地區(qū)會有不同的表示方式。為了解決以上這些問題,JSF提供了Converter的實現(xiàn),她主 要做的事情就是根據(jù)所在的地區(qū),對頁面數(shù)據(jù)和模型數(shù)據(jù)進行雙向的轉(zhuǎn)換。 ii. 代碼: 模型代碼: package nick; public class User private Date date = new Date(); public Date getDate() return date; public void setDate(Date date) this.date = date; 頁面代碼: Test 注: 通過嵌套的convertXXX標(biāo)簽,我們可以為控件配置用于轉(zhuǎn)換的轉(zhuǎn)換器。我們可以使用兩種方式來注冊轉(zhuǎn)換器,一是通過控件的convert屬性,另外 一種就是通過嵌套的convertXXX標(biāo)簽。如果在轉(zhuǎn)換的時候發(fā)生錯誤,那么JSF將跳過轉(zhuǎn)換以后的步驟,而直接跳到Render Response步驟,生成響應(yīng),并在FacesContext里添加一個出錯的Message,該Message的內(nèi)容可以通過message標(biāo)簽進行 顯示。b) Validate(驗證): i. 說明:在數(shù)據(jù)被交付后臺處理以前,我們可以通過驗證器,來驗證輸入的數(shù)據(jù)是否合法,這包括數(shù)值的大小,或者是字符串的長度等。使用驗證器的好處就是我們可以把驗證的代碼從控制代碼中單獨出來,以便管理和重用。 ii. 代碼: 頁面代碼: Test 注: 通過嵌套的validateXXX標(biāo)簽我們可以為一個控件注冊一個驗證器,與轉(zhuǎn)換器不同,我們可以為一個控件注冊多個驗證器,以進行復(fù)雜的驗證。注冊驗證 器的方法也有兩個,一是通過控件的validator屬性,另外一種就是通過嵌套的validateXXX標(biāo)簽。與轉(zhuǎn)換器類似,當(dāng)驗證失敗時,失敗的原因 也會以Message的形式被放到FacesContext內(nèi),在頁面內(nèi)通過message標(biāo)簽可以對錯誤信息進行顯示。 8
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CNCA 017-2022基于動態(tài)地質(zhì)模型與自主規(guī)劃開采的綜采工作面設(shè)計規(guī)范
- T/CIMA 0025-2021低壓用電戶表關(guān)系檢查儀
- T/CIE 054-2018X射線脈沖星導(dǎo)航探測器地面試驗系統(tǒng)校準(zhǔn)規(guī)范
- T/CHES 100-2023水質(zhì)高錳酸鹽指數(shù)的測定自動氧化還原滴定法
- T/CGTA 06-2023小麥加工脫氧雪腐鐮刀菌烯醇風(fēng)險預(yù)警技術(shù)規(guī)范
- T/CECS 10281-2023建筑用基礎(chǔ)隔振墊板
- T/CECS 10021-2019照明用LED驅(qū)動電源技術(shù)要求
- T/CCS 060-2023智能化煤礦運維組織架構(gòu)管理規(guī)范
- T/CCMA 0103-2020瀝青路面微波綜合養(yǎng)護車
- T/CBMCA 023-2021鉻渣陶瓷顏料
- GA/T 544-2021多道心理測試系統(tǒng)通用技術(shù)規(guī)范
- 腰椎間盤突出癥的針刀治療課件
- 《法理學(xué)》考試筆記與重點
- DB44!T+2419-2023全生曬柑普茶生產(chǎn)技術(shù)規(guī)程
- (52)-皰疹性咽峽炎小兒推拿探秘
- GMP體系文件(手冊+程序)
- 柴油叉車日常點檢表
- 物流成本管理-日日順d2d物流成本分析
- 集電線路安裝工程質(zhì)量通病防治
- 大學(xué)生動漫創(chuàng)業(yè)計劃書
- 壓鑄機維護與保養(yǎng)新
評論
0/150
提交評論