跳过所需的验证并调用应用程序

Sri*_*ula 3 jsf jsf-2

在这里问了我的问题,但我认为它缺乏一些明显的信息.因此我再次发布我的问题.

我有一个JSF表单,它在h:inputText字段上有一些必需的验证.提交表单时,我想跳过(或忽略)所需的验证检查并仍然调用应用程序.我确实想要进行表单数据验证并根据某些条件显示错误.

基本上我想跳过验证并在使用ajax调用提交表单时调用应用程序,并在单击提交按钮提交表单时进行验证.

Bal*_*usC 10

只需将该条件直接放在required属性中即可.

<h:inputText ... required="#{someCondition}" />
Run Code Online (Sandbox Code Playgroud)

它只是接受任何EL表达式,就像许多其他属性一样.许多初学者认为你只能对其中的字符串"true""false"字符串进行硬编码.这是不真实的.

例如,当您只想在true实际按下保存按钮时评估它:

<h:inputText ... required="#{not empty param[save.clientId]}" />
...
<h:commandButton value="Cancel" ... />
<h:commandButton binding="#{save}" value="Save" ... />
Run Code Online (Sandbox Code Playgroud)

(注:代码完成原来的样子,你就不会需要将其绑定到一个bean属性)

这样,该required属性仅true在按下保存按钮时进行评估false,并评估任何其他按钮或ajax事件侦听器.