JSF生命周期:跳过验证和更新模型



我有一个包含许多字段的表单。我需要知道是否有错误。但是,如果用户愿意,他可以保存有错误的数据。

我使用JSF,我问我是否有一种简单的方法可以跳过验证。作为参考,包含所有字段的表单都封装在一个组合中。

您可以通过将属性immediate="true"添加到h:commandButtonh:commandLink来跳过验证。

<h:form>
<h:inputText value="#{someBean.input}"/>
//other input fields
<h:commandButton action="#{someBean.invoke}" value="Go" immediate="true"/>
</h:form>

在这种情况下,即使存在验证错误,也会进行导航。

您可以编写一个验证器(而不是jsf验证器),它将验证数据并在faces消息中添加错误(如果有),请在操作方法中调用此验证器。

我想这会达到你的目标,但JSF自己使用的validaotr不会有帮助。

希望这能有所帮助!!!!

最后,我已经重载了RequiredValidator(和其他),并将一个参数传递给每个按钮[Save with error]和[Save]。如果单击了带有错误的保存按钮,则我的自定义验证程序将跳过验证。转换错误可能是个问题。所以我的managedBean中的所有字段都是String。如果我期望一个Integer,我也会为此编写一个客户验证程序。

有点重,但很管用。

最新更新