idf和adf_ADF:弹出窗口,对话框和输入组件
idf和adf
在本文中,當我們有一個af:popup包含af:dialog并在其中包含輸入組件時,我想重點介紹一個非常常見的用例。 實現此用例時,需要注意一些陷阱。
讓我們考慮一個簡單的示例:
這里最有趣的是彈出窗口的屬性contentDelivery ,該屬性設置為lazyUncached 。 這樣可以防止彈出窗口緩存提交的輸入值,并強制其從每個請求的模型中獲取值,而不是使用緩存中的值。
讓我們將示例變得更加復雜。 在姓氏的設置器中,我們將引發一個異常:
public void setLastName(String lastName) throws Exception {??????? this.lastName = lastName;??????? throw new Exception("This last name is bad"); }因此,顯然,如果我們嘗試提交對話框,則會得到以下信息:
輸入值不能提交給模型,它們將存儲在輸入組件的局部值中。 即使我們按“ 取消”按鈕,也不會清除這些本地值,并且在子序列請求期間將使用這些值。 為了防止這種行為,我們必須將彈出窗口的resetEditableValues屬性設置為whenCanceled 。 像這樣:
讓我們來看一個帶有自定義按鈕的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:弹出窗口,对话框和输入组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网吧里用什么样的电脑配置最好?
- 下一篇: 霍廷格对阿维克斯-势均力敌,但只有一名胜