gpt4 book ai didi

validation - 绕过 UIInput 组件的 JSF 验证

转载 作者:行者123 更新时间:2023-12-04 06:39:31 24 4
gpt4 key购买 nike

这是问题所在,JSF 验证不断将字段翻转回最后一个已知值。

我们正在编辑一个支持 bean 已经有值的页面。
(频率=“每周”)

并且我们需要显示“请选择..”的默认值,即使该值不会通过验证(是的,我只想让用户留在带有错误消息的页面上)。

有什么方法可以让用户选择“选择..”而不是将其重置为最后一个好的值?

显然不允许用户保存,但我们希望保留其无效值。

  • 用户添加新对象,从下拉菜单中选择合适的值
  • 用户保存成功。
  • 用户单击“编辑”并显示具有已知值的对象(“每周”)
  • 用户将“每周”更改为“选择”
  • 用户点击保存
  • 显示验证消息(好)但频率返回到“每周”的最后一个值(不好,我需要它保持在“请选择..”并让用户手动修复下拉列表。

  • immediate="true"不适用于 inputComponents,仅适用于 commandComponents。

    最佳答案

    我承认这一点,我在一年多前将其报告为 JSF issue 1299 .这仍然没有解决,因为它的优先级很低。这并非针对所有 UIInput组件,但到 MenuRenderer负责渲染 HTML <select>元素。所有其他 HTML 输入元素的行为与您预期的一样,提交的值将重新显示(嗯,实际上也没什么)。

    由于您已经在使用 JSF 2.0,我建议您在 f:ajax 的帮助下解决这个问题。这样下拉列表就不会被重新渲染,从而保持它的选择。

    <h:selectOneMenu id="frequency" value="#{bean.frequency}" required="true">
    <f:selectItems value="#{bean.frequencies}" />
    <f:ajax render="frequencyMessage" />
    </h:selectOneMenu>
    <h:message id="frequencyMessage" for="frequency" />

    额外的好处是最终用户有即时反馈,这对用户体验更好。

    关于validation - 绕过 UIInput 组件的 JSF 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434490/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com