【问题标题】:rich:popupPanel form remembering old valuesrich:popupPanel 形式记住旧值
【发布时间】:2014-10-10 05:35:00
【问题描述】:

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

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

【问题讨论】:

    标签: jsf richfaces


    【解决方案1】:

    显示和隐藏只是在可见和不可见状态之间切换。如果您希望它使用当前值,则每次打开它时都需要重新渲染它。

    编辑:示例代码

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

    【讨论】:

    • 如何重新渲染?你能发布一些示例代码吗?谢谢。
    • @WebUser,您使用render 属性。我添加了一个示例。
    • 我已经有了 render 属性,但它以某种方式提取旧值,即使支持 bean 不再具有这些值。
    • 在这种情况下,您可能需要发布代码示例。并使用&lt;a4j:log&gt; 查看来自服务器的响应。
    • &lt;a4j:commandButton /&gt; 标签内添加&lt;f:ajax resetValues="true" /&gt; 有助于重置输入值。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多