JSF单页上的多个<p:messages> </p:messages>

时间:2010-08-09 11:35:39

标签: jsf-2

此图像应清楚地解释问题。我正在使用来自primefaces的 p:messages ,但我想它也应该适用于 h:messages

alt text http://img717.imageshack.us/img717/4775/pmessages.png

我想将<p:messages>组件与其放置的形式相关联。在这种情况下,两个组件都会收到消息。

错误是由服务器生成的,我正在使用此功能:

public static void showErrorMessage(String errorString) {
    FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, errorString, "");
    FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}

我该如何解决这个问题?谢谢!

编辑:澄清:两个组件都在同一页面上。

2 个答案:

答案 0 :(得分:3)

这是非ajax请求吗? p:PrimeFaces 2.1的消息具有重新显示(默认情况下为true)选项,这可能有所帮助。当redisplay为false时,将忽略已显示的消息。您也可以使用p:growl作为替代方案。

答案 1 :(得分:1)

JSF + PrimeFaces 5.2中的一个例子

XHTML

<p:messages for ="Message1" showDetail="true" autoUpdate="true" closable="true" />
<p:messages for ="Message2" showDetail="true" autoUpdate="true" closable="true" />

FacesContext.getCurrentInstance().addMessage("Message1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 1"));

FacesContext.getCurrentInstance().addMessage("Message2", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 2"));

This source give this answer and helped me