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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ADF Faces。 立即的自定义客户端事件

發布時間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADF Faces。 立即的自定义客户端事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在本文中,我將重點介紹ADF Faces Javascript API方法以從客戶端觸發自定義事件。 例如:

function cliListener(actionEvent) {AdfCustomEvent.queue(actionEvent.getSource(), "servListener",null, true);}

我們可以使用af:clientListener標記,以便將cliListener函數附加到命令按鈕,并在單擊按鈕時使該函數被調用。 在服務器端,我們可以捕獲事件并調用托管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方法將在哪個階段觸發? 有時這很重要,因為它可以顯著改變應用程序的行為。

讓我們看一下AdfCustomEvent.queue方法的規范:

/*** @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) { ... }

我將專注于立即數參數。 當其值為true時 ,客戶端事件將在“ 應用請求值”階段傳遞。 因此,它將在“ 調用應用程序”階段觸發命令按鈕的動作和動作偵聽器方法之前觸發。 而且,如果即時參數的值為false ,則客戶端事件將在命令按鈕的操作和操作偵聽器方法之后在“ 調用應用程序”階段觸發。

讓我們考慮一個非常簡單的任務流的示例:

有兩個視圖活動: BrowseView和EditView 。 它們每個都有一個PageDef文件。 BrowseView包含上面描述的TestButton 。 此按鈕將觸發goEdit操作,因此,當用戶單擊它時,他們將轉到EditView活動。 除此之外,單擊按鈕還調用cliListener JS函數,該函數將servListener自定義事件發送到服務器。 將捕獲此事件,并將調用托管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代碼中將即時參數的值設置為true

function cliListener(actionEvent) {AdfCustomEvent.queue(actionEvent.getSource(), "servListener",null, true);}

然后是serverListener方法 將在轉到EditView之前在Apply Request Values階段調用。 當前綁定容器的名稱將如下所示:

..._pageDefs_BrowseViewPageDef_...

但是,如果即時參數為false,則使用serverListener方法 將在命令按鈕的操作之后被調用,并且當前綁定容器的名稱將如下所示:

..._pageDefs_EditViewPageDef_...

本文的示例應用程序需要JDeveloper R2。

注意! 以上內容對R2有好處。

在R1中,行為略有不同。 如果命令組件的操作導致導航到另一個視圖活動(如本例所示),并且客戶端事件以即時=假排隊,則將永遠不會調用服務器偵聽器中定義的托管bean方法。 但是,如果您保持相同的視圖活動,則將在“ 調用應用程序”階段執行托管bean方法。

如果即時= true,則無論如何都將在服務器偵聽器中定義的托管bean方法執行。
應用請求值階段。

而已!

參考: ADF Faces。 我們的JCG合作伙伴 Eugene Fedorenko在ADF實踐博客上提供了即時的定制客戶活動 。

翻譯自: https://www.javacodegeeks.com/2014/02/adf-faces-immediate-custom-client-events.html

總結

以上是生活随笔為你收集整理的ADF Faces。 立即的自定义客户端事件的全部內容,希望文章能夠幫你解決所遇到的問題。

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