2012-02-03 110 views

回答

1

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

FacesContext context = FacesContext.getCurrentInstance(); 
Iterator<FacesMessage> messages = context.getMessages(); 

希望有帮助。

+1

那正是我现在所做的,FacesContext.getCurrentInstance()getMaximumSeverity = NULL,谢谢!: ) – 2012-02-03 08:08:01

+2

如果你有你自己的验证器可以包含INFO或WARNING消息,那么你可能不得不忽略它。 – 2012-02-03 08:11:53

3

使用最大程度的误差在FacesContext

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

如果validationFailed的值是true,那么有一些错误消息出现。

6

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

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

可以顺便也检查它在观察侧如下:

<h:panelGroup rendered="#{facesContext.validationFailed}"> 
    <p>Validation has failed.</p> 
</h:panelGroup>