日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSF和Facelets的lifecircle

發(fā)布時間:2025/3/15 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSF和Facelets的lifecircle 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.JSF生命周期

1)恢復視圖(Restore View)

視圖表示組成特定頁面的所有組件。它被保存在 客戶端(通常存儲在隱藏字段中)或服務器中(通常在會話中)。根據(jù)請求訪問的視圖ID(頁面地址),重建JSF 組件DOM樹。如果JSF頁面是第一次訪問,也即是視圖ID在內(nèi)存中沒沒有存根,那么JSF會在內(nèi)存中構建JSF組件的DOM樹。恢復視圖也確保了組件的值,與樹中的組件相關聯(lián)的事件監(jiān)聽器、驗證器或者轉換器,都被恢復。

2)應用請求值(Apply Request Values)

JSF組件獲取請求中的屬于自己的值,包括Local值,和submit值.同時處理轉換,轉換成功,更新local值(submit轉換結果),當然過程沒有那么簡單,JSF處理器有自己的一套解碼過程。

3) 執(zhí)行驗證

在處理驗證階段,JSF遍歷組件樹并檢查每個組件,看是否每個組件的被提交值都可以接受。驗證發(fā)生前,被提交值將首先由注冊到該組件的 轉換器或者默認轉換器進行轉換。然后驗證直接由組件進行或者委托給一個或者多個其他驗證器來進行。如果用戶的輸入無效就會向FacesContext中增加一個錯誤消息,并且該組件會被表示為無效,然后轉到響應階段,顯示當前視圖,表示 錯誤信息。

4)更新模型值:如果所有的組件本地值轉換驗證等均成功,此時JSF就會根據(jù)EL處理關聯(lián)的bean,并更新bean綁定值.在此處JSF會根據(jù)EL綁定加載配置的后臺bean。

5)調(diào)用應用:調(diào)用注冊的偵聽器,然后執(zhí)行 事件驅動,獲取下一個視圖。偵聽器此時可以有效的偵聽到UI組件的各項數(shù)據(jù), 事件驅動部分即action可以有效的獲取被更新的后臺bean數(shù)據(jù)。執(zhí)行自己的業(yè)務邏輯。

6)渲染響應(Render Response)

到此請求處理結束,根據(jù)導航規(guī)則,渲染響應的頁面,依次執(zhí)行。

?

?

2.Facelets生命周期

JSF規(guī)范定義了JavaServer Faces應用程序的生命周期。以下步驟為基于 Facelets 的應用程序的過程描述。

  • 生命周期是在客戶端使用Facelets創(chuàng)建的網(wǎng)頁發(fā)出新請求時啟動。 JSF創(chuàng)建一個新的組件樹或javax.faces.component.UIViewRoot并放入FacesContex。

  • 如果可用的UIViewRoot應用于Facelets, 視圖可以填充組件進行渲染。

  • 新建的視圖作為對客戶端的響應而被渲染。

  • 在渲染時,存儲此視圖的狀態(tài)用于下一個請求。 存儲輸入組件和表單數(shù)據(jù)的狀態(tài)。

  • 客戶端可以與視圖交互,并從JSF應用程序請求另一個視圖。 此時,保存的視圖從存儲狀態(tài)恢復。

  • 恢復視圖再次通過JSF生命周期,如果沒有驗證問題,并且沒有觸發(fā)任何操作,最終將生成新視圖或重新呈現(xiàn)當前視圖。

  • 如果請求相同的視圖,則再次呈現(xiàn)存儲的視圖。

  • 如果要求新視圖,則繼續(xù)執(zhí)行步驟2

  • 將新視圖作為對客戶端的響應。

  • 轉載于:https://www.cnblogs.com/XGQXGQ/p/8919030.html

    總結

    以上是生活随笔為你收集整理的JSF和Facelets的lifecircle的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。