gpt4 book ai didi

validation - JSF 跳过必需验证而不立即 = true

转载 作者:行者123 更新时间:2023-12-03 07:02:23 24 4
gpt4 key购买 nike

我有多个表单,其中有必填字段和可选字段。

提交这样的表单,我需要对要执行的必需属性进行验证,这工作得很好。为了取消这样的表单,我在p:commandbutton上使用属性immediate="true",这使得它的操作在>应用请求值-此处解决的阶段:How to skip validation when a specific button is clicked?

但是,对于大型表单,我想为用户提供一个“保存”按钮,以便他稍后可以继续。

为了仅保存当前状态,我还想忽略所需属性的验证。但是,使用 immediate="true" 不起作用,因为这样我的保存方法就不会保存任何内容,因为 JSF 生命周期永远不会达到“UpdateModelValues”阶段。 (根据http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html)

那么,如何绕过必需的检查而不跳过一半的生命周期呢?

最佳答案

每个按钮都会在参数列表中创建一个条目,只要它是表单的成员。因此,我简单地检查了“required”参数是否存在该条目:

<h:form id="form" prependId="true">
...
<p:inputText id="someId"
required="#{param['form:save']==null}" ... />
...
<p:commandButton id="save" value="Save" />
<p:commandButton id="submit" value="Submit" />
<p:commandButton id="cancel" value="Cancel" immediate="true" />
</h:form>

当我单击“提交”时,param['form:save']NULL,然后将表达式变为 true,因此验证已执行。

当我单击“保存”时,param['form:save']NOT NULL(但为空!),解析为 false code> 因此验证被忽略。 (或者假设 JSF 认为它不是必填字段,因为表达式被计算为 false)

关于validation - JSF 跳过必需验证而不立即 = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14335610/

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