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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

了解ADF Faces clientComponent属性

發布時間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 了解ADF Faces clientComponent属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我相信大多數ADF開發人員都知道ADF Faces屬性clientComponent 。 在這篇文章中,我將展示此屬性實際上如何影響組件渲染以及它如何改變其行為。 讓我們開始考慮一個非常簡單的示例:

<af:inputText label="Label 1" id="it1" /> <af:outputText value="outputText1" id="ot1"/>

結果頁面如下所示:

讓我們看一下生成的html:

我們可以看到我們的outputText已變成簡單的文本字符串。 沒有任何組件代表它。 Java腳本表達式AdfPage.PAGE.findComponent(“ ot1”)將返回“ undefined” 。 甚至表達式document.getElementById(“ ot1”)也將返回null。 因此,我們既沒有ADF Faces JS豐富對象,也沒有對應于outputText的本機DOM元素。 沒事

讓我們的示例更加復雜:

<af:inputText label="Label 1" id="it1" autoSubmit="true"value="#{MainTest.someValue}"valueChangeListener="#{MainTest.inputTextListener}"/> <af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"/>

inputText將其值存儲在托管bean中,并且此值應由outputText呈現。 inputText的valueChangeListener將outputText作為部分目標添加到faces上下文中:

public void inputTextListener(ValueChangeEvent valueChangeEvent) {AdfFacesContext ctx = AdfFacesContext.getCurrentInstance();ctx.addPartialTarget(outputText); }

一切似乎都還可以,但是沒有用。 此外,我們會在日志中找到以下消息:

<PprResponseWriter$PPRTag> <finish> no PPR-capable ID found for elements of: RichOutputText[UIXFacesBeanImpl, id=ot1]

這是因為客戶端上沒有相應的組件。 outputText僅由簡單文本表示。

好吧,讓我們將outputText的 clientComponent設置為true:

<af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"clientComponent="true"/>

這樣我們的例子就起作用了!

看一下html:

有呈現的html標簽跨度 ,它表示我們的outputText。 Java腳本表達式document.getElementById(“ ot1”)返回HTMLSpanElement。 AdfPage.PAGE.findComponent(“ ot1”)表達式返回AdfRichOutputText ,它是由以下JS代碼創建的ADF Faces JS對象:

好的,就部分渲染而言,讓outputText依賴于inputText :

<af:inputText label="Label 1" id="it1" autoSubmit="true"value="#{MainTest.someValue}"/> <af:outputText value="#{MainTest.someValue}" id="ot1" partialTriggers="it1"/>

這個例子比上一個例子簡單,并且可以工作。 JS表達式document.getElementById(“ ot1”)返回HTMLSpanElement,但是AdfPage.PAGE.findComponent(“ ot1”)表達式返回“ undefined” 。 沒有為outputText創建任何ADF Faces客戶端對象,但是已渲染DOM元素( span )。

實際上,通常使用clientComponent屬性來獲取在客戶端創建的ADF Faces JS對象。 但是,除此之外, clientComponent屬性強制呈現組件的DOM元素,有時我們可能僅出于該原因需要使用clientComponent屬性。 我們在第一個示例中這樣做了,并使它正常工作。


而已!

參考: ADF練習博客上的JCG合作伙伴 Eugene Fedorenko 了解了ADF Faces clientComponent屬性 。

翻譯自: https://www.javacodegeeks.com/2013/05/understanding-adf-faces-clientcomponent-attribute.html

總結

以上是生活随笔為你收集整理的了解ADF Faces clientComponent属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。