2014-10-10 121 views
0

我有一個基於會話的支持bean支持的JSF頁面。該頁面還包含一個rich:popupPanel模式窗口,其中包含一個帶有幾個級聯元素和幾個文本框的窗體。我第一次向表格中輸入數值並按下取消按鈕,彈出消失。但是當我點擊顯示彈出窗口的命令按鈕時,即使我重置了後臺bean中的底層屬性,下拉菜單和輸入文本框也會顯示先前輸入的值。就好像JSF UI元素的狀態被緩存了一樣,因爲出於調試的目的,我在彈出框的底部打印了底層屬性值,並且這些屬性值爲空(或空)。rich:popupPanel窗體記住舊值

爲什麼會發生這種情況,並且是否有重置表單UI元素狀態的有效方法?

回答

1

顯示和隱藏只是在可見和不可見狀態之間翻轉。如果您希望使用當前值,則需要在每次打開彈出窗口時重新顯示彈出窗口。

編輯:示例代碼

<a4j:commandButton render="popupPanelId" execute="@this" 
    oncomplete="#{rich:component('popupPanelId'}.show()" value="Click me" /> 
+0

如何重新渲染?你可以請張貼一些示例代碼嗎?謝謝。 – 2014-10-10 12:49:12

+0

@WebUser,你使用'render'屬性。我已經添加了一個示例。 – Makhiel 2014-10-13 07:47:59

+0

我已經擁有'render'屬性,但即使支持bean不再具有這些值,它也會以某種方式拉動舊值。 – 2014-10-13 18:57:13