簡體   English   中英

Primefaces p:消息不顯示

[英]Primefaces p:messages does not display

嗨,我有顯示p:messages的問題,我有此頁面:

<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>

這是我管理消息的bean

@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 bean名稱錯誤。

該bean的名稱為@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>標記。 我也認為您應該使用msgs而不是"form1:msgs" 不幸的是,由於我從未使用過素面,因此我不確定100%是否能使用素面。

問題是在這里actionListener="#{messagesController.addInfo}"您正在調用的messageController可能不存在。 您應該改為使用beanMessageManager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM