2013-01-15 2 views

답변

2

<p:message/>을 사용해야합니까?

<h:outputText value="#{fn:length(facesContext.messageList)}"/> 
0

더이에 대한 기능 내장 없다보십시오. 당신은 몇 가지 검사를하고 메시지를 추가 할 수 있습니다 백킹 빈에서

<p:messages for="justForErrorCount"/> 
<h:inputHidden id="justForErrorCount"/> 

:

if (FacesContext.getCurrentInstance().getMessageList() != null && 
     !FacesContext.getCurrentInstance().getMessageList().isEmpty()) { 

    String message = "You have " + 
     FacesContext.getCurrentInstance().getMessageList().size() + " errors"; 
    FacesContext.getCurrentInstance().addMessage("justForErrorCount", 
     new FacesMessage(FacesMessage.SEVERITY_ERROR, message); 
} 
3

그냥 원하는 경우를 당신은 예를 들어 형성 inputHidden 요소를 추가하고, 그 입력 숨겨진 필드 p:message을 추가 할 수 있습니다 특정 메시지 (예 : 오류 만)를 계산합니다. 당신이 뭔가를 할 수 있습니다

@ManagedBean 
@RequestScoped 
public class MessageCount { 

    public int getFatal() { 
     return countMessages(FacesMessage.SEVERITY_FATAL); 
    } 

    public int getError() { 
     return countMessages(FacesMessage.SEVERITY_ERROR); 
    } 

    public int getWarn() { 
     return countMessages(FacesMessage.SEVERITY_WARN); 
    } 

    public int getInfo() { 
     return countMessages(FacesMessage.SEVERITY_INFO); 
    } 

    private int countMessages(FacesMessage.Severity severity) { 
     Iterator<FacesMessage> iterator = FacesContext.getCurrentInstance().getMessages(); 
     int count = 0; 
     while (iterator.hasNext()) { 
      FacesMessage msg = iterator.next(); 
      if (severity.compareTo(msg.getSeverity()) == 0) { 
       count++; 
      } 
     } 
     return count; 
    } 
} 

그리고 당신의 JSF 페이지 :

<h:outputText value="#{messageCount.error}"/>