adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件
adf可以自定義溶劑嗎
在本文中,我將重點(diǎn)介紹ADF Faces Javascript API方法以從客戶端觸發(fā)自定義事件。 例如:
我們可以使用af:clientListener標(biāo)記,以便將cliListener函數(shù)附加到命令按鈕,并在單擊按鈕時使該函數(shù)被調(diào)用。 在服務(wù)器端,我們可以捕獲事件并調(diào)用托管bean方法:
<af:commandButton text="TestButton" id="cb1" action="goEdit">?? <af:clientListener type="action" method="cliListener" /><af:serverListener type="servListener"method="#{TheBean.serverListener}"/></af:commandButton>問題是–該事件將傳遞到哪個生命周期階段,托管bean方法將在哪個階段觸發(fā)? 有時它非常重要,因為它可以顯著改變應(yīng)用程序的行為。
讓我們看一下AdfCustomEvent.queue方法的規(guī)范:
/*** @param {AdfUIComponent} Component to queue the custom event on* @param {String} the type of the event* @param {Object} a set of parameters to include on the event. Reserved* parameter names include "type" and "immediate".* @param (boolean) whether the custom event is "immediate" - which will* cause it to be delivered during Apply Request Values on the server,* or not immediate, in which case it will be delivered during* Invoke Application. */ AdfCustomEvent.queue = function(component, type, params, immediate) { ... }我將專注于立即數(shù)參數(shù)。 當(dāng)其值為true時 ,客戶端事件將在“ 應(yīng)用請求值”階段傳遞。 因此,它將在“ 調(diào)用應(yīng)用程序”階段觸發(fā)命令按鈕的動作和動作偵聽器方法之前觸發(fā)。 而且,如果即時參數(shù)的值為false ,則客戶端事件將在命令按鈕的操作和操作偵聽器方法之后在“ 調(diào)用應(yīng)用程序”階段觸發(fā)。
讓我們考慮一個非常簡單的任務(wù)流的示例:
有兩個視圖活動: BrowseView和EditView 。 它們每個都有一個PageDef文件。 BrowseView包含上面描述的TestButton 。 此按鈕會觸發(fā)goEdit操作,因此,當(dāng)用戶單擊它時,他們將轉(zhuǎn)到EditView活動。 除此之外,單擊按鈕還調(diào)用cliListener JS函數(shù),該函數(shù)將servListener自定義事件發(fā)送到服務(wù)器。 該事件將被捕獲,并且將調(diào)用托管bean方法:
public void serverListener(ClientEvent clientEvent) {BindingContext bc = BindingContext.getCurrent();DCBindingContainer dcb = (DCBindingContainer) bc.getCurrentBindingsEntry();//Do something with dcbSystem.out.println("dcb="+dcb.getName()); }如果我們在JS代碼中將即時參數(shù)的值設(shè)置為true
function cliListener(actionEvent) {AdfCustomEvent.queue(actionEvent.getSource(), "servListener",null, true);}然后是serverListener方法 將在轉(zhuǎn)到EditView之前在Apply Request Values階段調(diào)用。 當(dāng)前綁定容器的名稱將如下所示:
..._pageDefs_BrowseViewPageDef_...但是,如果即時參數(shù)為false,則使用serverListener方法 將在命令按鈕的操作之后被調(diào)用,并且當(dāng)前綁定容器的名稱將如下所示:
..._pageDefs_EditViewPageDef_...本文的示例應(yīng)用程序需要JDeveloper R2。
注意! 以上內(nèi)容對R2有好處。
在R1中,行為略有不同。 如果命令組件的動作導(dǎo)致導(dǎo)航到另一個視圖活動(如本例所示),并且客戶端事件以即時=假排隊,則將永遠(yuǎn)不會調(diào)用服務(wù)器偵聽器中定義的托管bean方法。 但是,如果您保持相同的視圖活動,則將在“ 調(diào)用應(yīng)用程序”階段執(zhí)行托管bean方法。
如果即時= true,則無論如何都將在服務(wù)器偵聽器中定義的托管bean方法執(zhí)行。
應(yīng)用請求值階段。
而已!
翻譯自: https://www.javacodegeeks.com/2014/02/adf-faces-immediate-custom-client-events.html
adf可以自定義溶劑嗎
總結(jié)
以上是生活随笔為你收集整理的adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Gradle – 2019版从Tra
- 下一篇: 松下洗衣机电脑板主板价格(panason