<p:growl>和<p:messages>在同一页面中

mac*_*.sz 7 primefaces jsf-2

我想<p:messages>用来显示错误信息,用于<p:growl>显示成功信息.在支持bean中:

FacesContext context = FacesContext.getCurrentInstance(); 
context.addMessage(null, new FacesMessage(title, msg));
Run Code Online (Sandbox Code Playgroud)

但是我发现不管我的支持bean添加消息,<p:messages>并且<p:growl>都显示它.

任何建议.

Mr.*_*mes 12

PrimeFacesgrowl的演示页面中,他们提到:" Growl只是替换了h:messages组件. " 我担心您可能无法实现目标,因为growl还会在View中显示所有FacesMessage.

但是,如果您反转您的要求 - 使用<p:growl>&显示成功消息显示错误<p:message>,您实际上可以实现如下:

<p:message id="successMsg" for="successMsg" />

@ManagedBean
@RequestScoped
public class MrBean {

   public void doSomething() {
      FacesContext context = FacesContext.getCurrentInstance(); 

      if (failed) {
         context.addMessage(null, new FacesMessage("Failed", "Sry boss! I have failed.")); 

      } else {
         context.addMessage("successMsg", new FacesMessage("Successful", "Hey boss! I did it!"));

      }
   }

}
Run Code Online (Sandbox Code Playgroud)


Stu*_*ent 10

看起来像PrimeFaces 3.3你可以做你想做的事:

http://blog.primefaces.org/?p=1894

你现在可以这样做:

<p:messages severity="error" />
<p:growl severity="info, warn" />
Run Code Online (Sandbox Code Playgroud)

context.addMessage("somekey", new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error Title", "Error Message"));
context.addMessage("somekey", new FacesMessage(FacesMessage.SEVERITY_INFO,"Success Title", "Success Message"));
Run Code Online (Sandbox Code Playgroud)


Zak*_*zza 10

JSF:

<p:messages for="somekey" />
<p:growl for="anotherkey" />
Run Code Online (Sandbox Code Playgroud)

豆:

context.addMessage("somekey", new FacesMessage(FacesMessage.SEVERITY_INFO,"Sample info message", "PrimeFaces Rocks"));
context.addMessage("somekey", new FacesMessage(FacesMessage.SEVERITY_INFO,"Sample info message", "Always bet on Prime"));a
context.addMessage("anotherkey", new FacesMessage(FacesMessage.SEVERITY_INFO,"Sample info message", "PrimeFaces is developed by Chuck Norris"));
Run Code Online (Sandbox Code Playgroud)

这对我很好!