了解ADF Faces clientComponent属性
我相信大多數(shù)ADF開發(fā)人員都知道ADF Faces屬性clientComponent 。 在這篇文章中,我將展示此屬性實際上如何影響組件渲染以及它如何改變其行為。 讓我們開始考慮一個非常簡單的示例:
結(jié)果頁面如下所示:
讓我們看一下生成的html:
我們可以看到我們的outputText已變成簡單的文本字符串。 沒有任何組件代表它。 Java腳本表達式AdfPage.PAGE.findComponent(“ ot1”)將返回“ undefined” 。 甚至表達式document.getElementById(“ ot1”)也將返回null。 因此,我們既沒有ADF Faces JS豐富對象,也沒有對應(yīng)于outputText的本機DOM元素。 沒事
讓我們的示例更加復(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將其值存儲在托管bean中,并且此值應(yīng)由outputText呈現(xiàn)。 inputText的valueChangeListener將outputText作為部分目標(biāo)添加到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]這是因為客戶端上沒有相應(yīng)的組件。 outputText僅由簡單文本表示。
好吧,讓我們將outputText的 clientComponent設(shè)置為true:
<af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"clientComponent="true"/>這樣我們的例子就起作用了!
看一下html:
有呈現(xiàn)的html標(biāo)簽跨度 ,它表示我們的outputText。 Java腳本表達式document.getElementById(“ ot1”)返回HTMLSpanElement。 AdfPage.PAGE.findComponent(“ ot1”)表達式返回AdfRichOutputText ,它是由以下JS代碼創(chuàng)建的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創(chuàng)建任何ADF Faces客戶端對象,但是已渲染DOM元素( span )。
實際上,通常使用clientComponent屬性來獲取在客戶端創(chuàng)建的ADF Faces JS對象。 但是,除此之外, clientComponent屬性強制呈現(xiàn)組件的DOM元素,有時我們可能僅出于該原因需要使用clientComponent屬性。 我們在第一個示例中這樣做了,并使它正常工作。
而已!
翻譯自: https://www.javacodegeeks.com/2013/05/understanding-adf-faces-clientcomponent-attribute.html
總結(jié)
以上是生活随笔為你收集整理的了解ADF Faces clientComponent属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行债市宝买入全价是什么意思?
- 下一篇: 苹果如何设置手写输入法(苹果如何设置手写