jsf 2.1 및 Primefaces 3.3을 사용하고 있습니다. <p:message>
을 사용하여 페이지 상단의 총 오류 수를 표시하고 싶습니다.primefaces 메시지에서 페이지 내의 총 오류 수를 표시하는 방법은 무엇입니까?
내가 어떻게하는지에 대한 조언을 해주십시오. 예제로 설명 할 수 있다면 도움이 될 것입니다. 미리 감사드립니다.
jsf 2.1 및 Primefaces 3.3을 사용하고 있습니다. <p:message>
을 사용하여 페이지 상단의 총 오류 수를 표시하고 싶습니다.primefaces 메시지에서 페이지 내의 총 오류 수를 표시하는 방법은 무엇입니까?
내가 어떻게하는지에 대한 조언을 해주십시오. 예제로 설명 할 수 있다면 도움이 될 것입니다. 미리 감사드립니다.
왜 <p:message/>
을 사용해야합니까?
<h:outputText value="#{fn:length(facesContext.messageList)}"/>
더이에 대한 기능 내장 없다보십시오. 당신은 몇 가지 검사를하고 메시지를 추가 할 수 있습니다 백킹 빈에서
<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);
}
그냥 원하는 경우를 당신은 예를 들어 형성 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}"/>
을