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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

idf和adf_ADF:弹出窗口,对话框和输入组件

發(fā)布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idf和adf_ADF:弹出窗口,对话框和输入组件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

idf和adf

在本文中,當我們有一個af:popup包含af:dialog并在其中包含輸入組件時,我想重點介紹一個非常常見的用例。 實現(xiàn)此用例時,需要注意一些陷阱。

讓我們考慮一個簡單的示例:

<af:popup id="p1" contentDelivery="lazyUncached"><af:dialog id="d2" title="Dialog" ><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/></af:dialog></af:popup>

這里最有趣的是彈出窗口的屬性contentDelivery ,該屬性設置為lazyUncached 。 這樣可以防止彈出窗口緩存提交的輸入值,并強制其從每個請求的模型中獲取值,而不是使用緩存中的值。

讓我們將示例變得更加復雜。 在姓氏的設置器中,我們將引發(fā)一個異常:

public void setLastName(String lastName) throws Exception {??????? this.lastName = lastName;??????? throw new Exception("This last name is bad"); }

因此,顯然,如果我們嘗試提交對話框,則會得到以下信息:


輸入值不能提交給模型,它們將存儲在輸入組件的局部值中。 即使我們按“ 取消”按鈕,也不會清除這些本地值,并且在子序列請求期間將使用這些值。 為了防止這種行為,我們必須將彈出窗口的resetEditableValues屬性設置為whenCanceled 。 像這樣:

<af:popup id="p1" contentDelivery="lazyUncached"resetEditableValues="whenCanceled"><af:dialog id="d2" title="Dialog" ><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/></af:dialog>? </af:popup>

讓我們來看一個帶有自定義按鈕的af:dialog的示例:

<af:popup id="p1" contentDelivery="lazyUncached"resetEditableValues="whenCanceled"binding="#{TheBean.popup}"><af:dialog id="d2" title="Dialog" type="none"><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/><f:facet name="buttonBar"><af:panelGroupLayout layout="horizontal" id="pgl1"><af:button text="Ok" id="b2" actionListener="#{TheBean.buttonActionListener}"/><af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.buttonActionListener}"/></af:panelGroupLayout>? </f:facet></af:dialog>? </af:popup>

因此,使用以下actionListener有兩個自定義按鈕“ Ok”和“ Cancel” :

public void buttonActionListener(ActionEvent actionEvent) {getPopup().hide(); }

在這種情況下, resetEditableValues不起作用,并且在按“ 取消”按鈕時,不會清除輸入組件的本地值。 有兩個選項可以解決此問題。

第一個是將af:resetListener添加到“取消”按鈕:

<af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.buttonActionListener}"><af:resetListener type="action"/></af:button>

第二個選項是取消彈出窗口,而不僅僅是將其隱藏在“取消”按鈕操作偵聽器中:

<af:button text="Ok" id="b2" actionListener="#{TheBean.buttonActionListener}"/><af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.cancelButtonActionListener}"/>public void cancelButtonActionListener(ActionEvent actionEvent) {getPopup().cancel(); }

而已!

翻譯自: https://www.javacodegeeks.com/2014/08/adf-popup-dialog-and-input-components.html

idf和adf

總結

以上是生活随笔為你收集整理的idf和adf_ADF:弹出窗口,对话框和输入组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。