我问了我的问题here,但我认为它缺少一些明显的信息。因此我再次发布我的问题。
我有一个JSF表单,它在h:inputText字段上有一些必需的验证。提交表单时,我想跳过(或忽略)所需的验证检查并仍然调用应用程序。我确实想要进行表单数据验证并根据某些条件显示错误。
基本上我想跳过验证并在使用ajax调用提交表单时调用应用程序,并在单击提交按钮提交表单时进行验证。
答案 0 :(得分:10)
只需将 条件直接放在required
属性中。
<h:inputText ... required="#{someCondition}" />
它只接受任何EL表达式,就像许多其他属性一样。许多初学者认为您只能对其中的"true"
或"false"
字符串进行硬编码。这是不真实的。
例如,当您只想在实际按下保存按钮时让它评估true
:
<h:inputText ... required="#{not empty param[save.clientId]}" />
...
<h:commandButton value="Cancel" ... />
<h:commandButton binding="#{save}" value="Save" ... />
(注意:代码是完整的,你不需要将它绑定到bean属性)
这样,required
属性仅在按下保存按钮时评估true
,并为任何其他按钮或ajax事件监听器评估false
。