如何指定消息是否应显示在p:growl或p:messages中?

You*_*sef 5 messages primefaces jsf-2

在我的Facelets页面中,我有这个:

<p:growl id="msg1" life="1500"/>
Run Code Online (Sandbox Code Playgroud)

和另一个

<p:messages id="msg2"/>
Run Code Online (Sandbox Code Playgroud)

我只需要显示以下消息<p:messages>.

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("veillez saisir les champs obligatoires (*)", null));
Run Code Online (Sandbox Code Playgroud)

但它也出现了<p:growl>.

如何指定消息的显示位置?

Jon*_*ico 16

从primefaces手册中提取.第282页.

可定向的消息

有时您可能需要将一条或多条消息定位到特定的消息组件,例如,假设您在同一页面上有咆哮和消息,并且您需要在growl上显示一些消息,在消息上显示一些消息.使用属性将消息与特定组件相关联.

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

FacesContext context = FacesContext.getCurrentInstance();
context.addMessage("somekey", facesMessage1);
context.addMessage("somekey", facesMessage2);
context.addMessage("anotherkey", facesMessage3);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,消息将显示第一个和第二个消息,而growl将仅显示第三个消息.


Fal*_*lup 14

因为p:messages只是扩展,h:messages并且p:growl实际上是h:messages你不能做的事情.你可以做的就是不更新p:growl你添加消息后context(可能是你做,在一些"确认" commandButton),那么它不会显示在所有,但你不能指定只显示一些消息.更好的解决方案是不p:growl与之混合p:messages使用.

您正在寻找的功能将在新的Primefaces 3.3 Targetable消息中提供