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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

了解ADF生命周期中的ADF绑定

發(fā)布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 了解ADF生命周期中的ADF绑定 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在本文中,我將重點(diǎn)介紹ADF綁定層,并探討當(dāng)最初從瀏覽器請求帶有某些數(shù)據(jù)的ADF頁面時,它如何工作。

Oracle ADF提供了自己的JSF生命周期擴(kuò)展版。 實際上,ADF擴(kuò)展了標(biāo)準(zhǔn)JSF生命周期實現(xiàn)類,并提供了ADF階段偵聽器,該偵聽器會在階段事件之前和之后得到通知。 這是擴(kuò)展了相應(yīng)ADF階段的JSF生命周期階段的列表:

  • 恢復(fù)視圖
    • ADF初始化上下文
  • 應(yīng)用請求值
  • Craft.io驗證
  • 更新模型值
    • ADF驗證模型更新
  • 調(diào)用申請
    • ADF元數(shù)據(jù)提交
  • 渲染響應(yīng)
    • ADF準(zhǔn)備渲染

請求有兩種類型: 初始請求和回發(fā) 。 在初始請求期間,生命周期非常短。 在“ 還原視圖”階段之后,生命周期會跳至“ 渲染響應(yīng)”階段,跳過其余階段。

當(dāng)用戶最初從瀏覽器請求ADF頁面時,應(yīng)用服務(wù)器會使用一系列Servlet過濾器對請求進(jìn)行一些預(yù)處理。 其中之一是ADFBindingFilter 。 此篩選器在Web.xml文件中定義,并且需要將ADF綁定應(yīng)用于操作。 因此,當(dāng)此過濾器處理請求時,它將在當(dāng)前會話中查找綁定上下文 ,如果不存在,則將創(chuàng)建一個新實例。 綁定上下文 作為DataBindings.cpx文件的運(yùn)行時表示形式,包含頁面及其頁面定義文件之間的映射。 它還包含應(yīng)用程序中使用的數(shù)據(jù)控件的列表。 有了所有這些,框架就調(diào)查了哪些數(shù)據(jù)控件和哪些綁定容器將參與請求。 ADFBindingFilter查找或創(chuàng)建每個必需的數(shù)據(jù)控件的實例,并調(diào)用其beginRequest方法。

綁定上下文初始化后,控件將返回到負(fù)責(zé)處理JSF生命周期階段的Faces Servlet。 當(dāng)JSF Lifecycle處理Restore View階段時,它將使用beforePhase事件通知ADF階段偵聽器 。 ADF階段偵聽器又將事件分派給所有內(nèi)部階段偵聽器,例如Update Binding Listener 。 然后通過在Binding Context上調(diào)用findBindingContainerByPath來初始化所需的綁定容器 。

因此, 綁定上下文, 數(shù)據(jù)控件和綁定容器已在請求的開始處創(chuàng)建。 該框架使用ADF PageLifeCycle類,以通過ADF階段擴(kuò)展JSF生命周期。 ADF階段偵聽器偵聽Restore View階段的afterPhase事件,并在ADF PageLifeCycle類上調(diào)用適當(dāng)?shù)姆椒ā?這樣,標(biāo)準(zhǔn)的JSF restoreView階段已擴(kuò)展為兩個ADF階段-InitContext和PrepareModel 。 在PrepareModel階段, ADF PageLifecycle在綁定容器上調(diào)用刷新方法,并將階段標(biāo)識符作為參數(shù)傳遞。

在準(zhǔn)備模型期間, 綁定容器將執(zhí)行其refresh屬性設(shè)置為prepareModel的任何可執(zhí)行條目(迭代器,操作等)。 這篇文章詳細(xì)介紹了refresh屬性。

在考慮對該頁面的初始請求時,我們將跳過下一個生命周期階段,并跳至渲染響應(yīng)階段。

ADF階段偵聽器偵聽“ 渲染響應(yīng)”階段的beforePhase事件,并通過調(diào)用一個ADF PageLifeCycle類的對應(yīng)方法在“ ADF階段準(zhǔn)備渲染”中對其進(jìn)行擴(kuò)展。 準(zhǔn)備渲染階段也稱為渲染模型 。 在此階段,框架再次在綁定容器上調(diào)用refresh方法,并且此時將其refresh屬性設(shè)置為renderModel的那些迭代器被執(zhí)行。

JSF Lifecycle將控件轉(zhuǎn)發(fā)到頁面渲染器,在這里渲染UI組件時,它們需要來自基礎(chǔ)模型的數(shù)據(jù)。 刷新屬性設(shè)置為延遲 (默認(rèn)值)的那些迭代器將在此處執(zhí)行。

在請求的最后, ADF綁定篩選器在參與請求的每個數(shù)據(jù)控件上調(diào)用endRequest方法。 這導(dǎo)致基礎(chǔ)應(yīng)用程序模塊被釋放回應(yīng)用程序模塊池。

而已!

翻譯自: https://www.javacodegeeks.com/2015/06/understanding-adf-bindings-in-adf-lifecycle.html

總結(jié)

以上是生活随笔為你收集整理的了解ADF生命周期中的ADF绑定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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