adf开发_了解ADF Faces clientComponent属性
adf開(kāi)發(fā)
我相信大多數(shù)ADF開(kāi)發(fā)人員都知道ADF Faces屬性clientComponent 。 在本文中,我將展示該屬性實(shí)際上如何影響組件渲染以及它如何改變其行為。 讓我們開(kāi)始考慮一個(gè)非常簡(jiǎn)單的示例:
結(jié)果頁(yè)面如下所示:
讓我們看一下生成的html:
我們可以看到我們的outputText已變成簡(jiǎn)單的文本字符串。 沒(méi)有任何組件代表它。 Java腳本表達(dá)式AdfPage.PAGE.findComponent(“ ot1”)將返回“ undefined” 。 甚至表達(dá)式document.getElementById(“ ot1”)也將返回null。 因此,我們既沒(méi)有ADF Faces JS豐富對(duì)象,也沒(méi)有對(duì)應(yīng)于outputText的本機(jī)DOM元素。 沒(méi)事
讓我們的示例更加復(fù)雜:
<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將其值存儲(chǔ)在托管Bean中,并且此值應(yīng)由outputText呈現(xiàn)。 inputText的valueChangeListener將outputText作為部分目標(biāo)添加到faces上下文中:
public void inputTextListener(ValueChangeEvent valueChangeEvent) {AdfFacesContext ctx = AdfFacesContext.getCurrentInstance();ctx.addPartialTarget(outputText); }一切似乎都還可以,但是沒(méi)有用。 此外,我們會(huì)在日志中找到以下消息:
<PprResponseWriter$PPRTag> <finish> no PPR-capable ID found for elements of: RichOutputText[UIXFacesBeanImpl, id=ot1]這是因?yàn)榭蛻舳松蠜](méi)有相應(yīng)的組件。 outputText僅由簡(jiǎn)單文本表示。
好吧,讓我們將outputText的 clientComponent設(shè)置為true:
<af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"clientComponent="true"/>這樣我們的例子就起作用了!
看一下html:
有呈現(xiàn)的html標(biāo)簽跨度 ,它表示我們的outputText。 Java腳本表達(dá)式document.getElementById(“ ot1”)返回HTMLSpanElement。 AdfPage.PAGE.findComponent(“ ot1”)表達(dá)式返回AdfRichOutputText ,它是由以下JS代碼創(chuàng)建的ADF Faces JS對(duì)象:
好的,就部分渲染而言,讓outputText依賴于inputText :
<af:inputText label="Label 1" id="it1" autoSubmit="true"value="#{MainTest.someValue}"/> <af:outputText value="#{MainTest.someValue}" id="ot1" partialTriggers="it1"/>這個(gè)例子比上一個(gè)例子更簡(jiǎn)單,并且可以運(yùn)行。 JS表達(dá)式document.getElementById(“ ot1”)返回HTMLSpanElement,但是AdfPage.PAGE.findComponent(“ ot1”)表達(dá)式返回“ undefined” 。 沒(méi)有為outputText創(chuàng)建任何ADF Faces客戶端對(duì)象,但是已渲染DOM元素( span )。
實(shí)際上,通常使用clientComponent屬性來(lái)獲取在客戶端創(chuàng)建的ADF Faces JS對(duì)象。 但是,除此之外, clientComponent屬性還強(qiáng)制為組件渲染DOM元素,有時(shí)我們可能僅出于該原因需要使用clientComponent屬性。 我們?cè)诘谝粋€(gè)示例中這樣做了,并使它正常工作。
而已!
翻譯自: https://www.javacodegeeks.com/2013/05/understanding-adf-faces-clientcomponent-attribute.html
adf開(kāi)發(fā)
總結(jié)
以上是生活随笔為你收集整理的adf开发_了解ADF Faces clientComponent属性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 雷神电脑桌面(雷神电脑桌面壁纸超清)
- 下一篇: 电脑主板用几颗螺丝钉合适(主板用多大的螺