rich:popupPanel窗体记住旧值

问题描述:

我有一个基于会话的支持bean支持的JSF页面。该页面还包含一个rich:popupPanel模式窗口,其中包含一个带有几个级联元素和几个文本框的窗体。我第一次向表格中输入数值并按下取消按钮,弹出消失。但是当我点击显示弹出窗口的命令按钮时,即使我重置了后台bean中的底层属性,下拉菜单和输入文本框也会显示先前输入的值。就好像JSF UI元素的状态被缓存了一样,因为出于调试的目的,我在弹出框的底部打印了底层属性值,并且这些属性值为空(或空)。rich:popupPanel窗体记住旧值

为什么会发生这种情况,并且是否有重置表单UI元素状态的有效方法?

显示和隐藏只是在可见和不可见状态之间翻转。如果您希望使用当前值,则需要在每次打开弹出窗口时重新显示弹出窗口。

编辑:示例代码

<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