gpt4 book ai didi

validation - 用户输入的值在 JSF 中验证后消失

转载 作者:行者123 更新时间:2023-12-03 11:25:59 25 4
gpt4 key购买 nike

我的页面中有 h:selectOneMenu 组件。用户必须在那里选择"is"或“否”,初始值为空(标记为“未知”)。在 bean 中它是 bool 值,所以 null 是可能的。如果用户选择有效值,例如"is",点击 Next,true 保存在 bean 中。

现在用户可以返回此页面,并选择“未知”,这不是一个有效值。当用户现在点击 Next 时,会显示错误消息。没关系,但值随后更改为"is"。它是从 bean 更新的。这样它会改变用户输入的内容,这不是必需的行为。能不能保住用户的值(value)?

<h:form id="co">
<h:selectOneMenu id="isCeded"
value="#{bean.boolValue}"
required="true"
requiredMessage="#{msgs.please_select_value}">
<f:selectItem itemLabel="#{msgs.unknown}"/>
<f:selectItem itemValue="true" itemLabel="#{msgs.yes}"/>
<f:selectItem itemValue="false" itemLabel="#{msgs.no}"/>
<f:ajax execute="@this" render="isCededMsg"/>
</h:selectOneMenu>*
<h:message id="isCededMsg" for="isCeded" errorClass="invalid"/>

<h:commandButton id="submit" value="Next" action="#{bean.submit}" />
</h:form>

奇怪的是,只有当用户在 null 不是有效值的字段中输入 null 时,才会发生此行为。如果例如用户在某些经过验证的文本字段中输入了另一个无效值(例如 20 位数字,其中只允许输入 10 位)单击“下一步”后用户输入的无效值仍然存在。仅显示错误消息。

最佳答案

这似乎是一个错误,看起来并没有得到修复。请参阅此问题中提到的 JIRA 链接:h:selectOneMenu with Please select displays previous selection on validation error

问题和JIRA问题都有解决方案。您需要扩展 MenuRenderer 并使用 JIRA 问题末尾提到的修补代码覆盖 renderOption 方法。

关于validation - 用户输入的值在 JSF 中验证后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284776/

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