如果validation失败,如何在validation阶段阶段后检入?

我编写了一个PhaseListener ,我在其中检查Validations阶段。 有没有办法可以在监听器的afterPhase()方法中检查validation失败,validation阶段之后的下一阶段将是渲染响应阶段。

如何使用FacesContext,您可以检查是否有任何排队的消息? 例如。

 FacesContext context = FacesContext.getCurrentInstance(); Iterator messages = context.getMessages(); 

希望有所帮助。

如果你使用的是JSF 2.0,只需使用FacesContext#isValidationFailed()来检查它。

 if (context.isValidationFailed()) { // Validation has failed. } 

顺便说一句,您也可以在视图中检查它,如下所示:

  

Validation has failed.

在FacesContext中使用最大严重性错误

 Severity maximumSeverity = FacesContext.getCurrentInstance().getMaximumSeverity(); boolean validationFailed=false; if (maximumSeverity != null && (maximumSeverity==FacesMessage.SEVERITY_ERROR || maximumSeverity ==FacesMessage.SEVERITY_FATAL)) { validationFailed=true; } 

如果validationFailed的值为true,则存在一些错误消息。