如何指定要发送消息的 <p:messages> 组件

Nic*_*ick 3 jsf primefaces

我想根据 bean 中的结果更新不同的组件。现在我正在使用:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "test","test"));
Run Code Online (Sandbox Code Playgroud)

并使用以下内容更新适当的组件:

<p:commandButton actionListener="#{Controller.method}" update="messageId"/>
<p:messages id="messageId"/>
Run Code Online (Sandbox Code Playgroud)

有没有不同的方法来做到这一点?从 bean 中,我可以指定将消息发送到哪个消息组件吗?

Vee*_*arM 6

正如 Vasil 所说 - 您可以将消息绑定到 id(该 id 的组件不一定需要存在)

FacesContext.getCurrentInstance().addMessage("idspecified", new FacesMessage("Header", "body"));
Run Code Online (Sandbox Code Playgroud)

然后在你的 xhtml 中使用

<p:message for="idspecified" />
Run Code Online (Sandbox Code Playgroud)