2013-12-10 2 views
2

안녕을 표시하지 않습니다 : 메시지 나는이 페이지가 있습니다Primefaces P : 메시지 나 디스플레이 페이지에 문제가

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 
<h:head> 
    <title>Facelet Title</title> 
</h:head> 
<h:body> 
    <h:form prependId="false"> 
     <p:messages id="msgs" showDetail="true"/> 
     <p:commandButton value="Info" actionListener="#{messagesController.addInfo}" update="msgs"/> 
     <p:commandButton value="Warn" actionListener="#{messagesController.addWarn}" update="msgs"/> 
     <p:commandButton value="Error" actionListener="#{messagesController.addError}" update="msgs"/> 
     <p:commandButton value="Fatal" actionListener="#{messagesController.addFatal}" update="msgs"/> 
    </h:form> 
</h:body> 

을하고이 메시지를 관리 할 수있는 나의 빈이다

@ManagedBean(name = "beanMessageManager") 
@SessionScoped 
public class BeanMessageManager {  
    public void addInfo(ActionEvent actionEvent) { 
     FacesContext.getCurrentInstance().addMessage("form1:msgs", new FacesMessage(FacesMessage.SEVERITY_INFO,"Sample info message", "PrimeFaces rocks!")); 
    } 
    public void addWarn(ActionEvent actionEvent) { 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Sample warn message", "Watch out for PrimeFaces!")); 
    }  
    public void addError(ActionEvent actionEvent) { 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Sample error message", "PrimeFaces makes no mistakes")); 
    } 
    public void addFatal(ActionEvent actionEvent) { 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,"Sample fatal message", "Fatal Error in System")); 
    } 
} 

버튼을 클릭하면 메시지가 표시되지 않습니다.

내가 뭘 잘못하고 있니? 당신이 actionListener에서 잘못된 빈 이름이 같은 응답

답변

1

에 대한

많은 감사 같은데.

빈의 이름은 @ManagedBean(name = "beanMessageManager")이지만 xhtml 페이지에서는 actionListener="#{messagesController.addInfo}"을 호출합니다.

아마이 작동합니다 :

<p:commandButton value="Info" actionListener="#{beanMessageManager.addInfo}" update="msgs"/> 
<p:commandButton value="Warn" actionListener="#{beanMessageManager.addWarn}" update="msgs"/> 
<p:commandButton value="Error" actionListener="#{beanMessageManager.addError}" update="msgs"/> 
<p:commandButton value="Fatal" actionListener="#{beanMessageManager.addFatal}" update="msgs"/> 

편집
은 또한 당신의 말 XHTML 파일에 </html> 태그가 누락되었습니다. 또한 "form1:msgs" 대신 msgs을 사용해야한다고 생각합니다. 불행히도 primeface가 사용 된 이후로 어떻게 작동하는지 100 % 확실하지 않습니다.

+0

2 개의 실수가 있습니다. 원인과 해결 방법을 잘 모르는 경우 코드를 직접 복사하여 붙여 넣으십시오. – BalusC

+0

좋은 지적, 나는 내 제안을 테스트 한 적이 없다. – Qben

0

문제는 여기 actionListener="#{messagesController.addInfo}"입니다. 메시지 컨트롤러이 존재하지 않을 수 있습니다. 대신 beanMessageManager을 사용해야합니다.