在PrimeFaces中,当您想要显示错误消息时,您可以:
因此,错误消息将显示在重定向页面中,具有匹配id的消息组件中
但是如果:
我想过把一个带有特定id的p:message组件放在每个xhtml页面中。但这并不一定涵盖第三种情况。
例如,可能有一个函数检查与另一个Web服务的连接。许多不同的操作可能会引发连接错误。
您如何管理此类通用错误消息?
答案 0 :(得分:1)
您可以将公共<p:dialog>
或<h:message>
放在用于所有网页的模板文件中,并为其指定唯一ID。这样,它将为使用该模板的所有页面呈现。
这假设您使用的是模板。
更新:如果您希望以编程方式更新组件,可以使用RequestContext#update()
进行更新例如
if (someErrorCondition) {
RequestContext.getCurrentInstance().update("errorDialogId");
}
其中errorDialogId
是常见错误对话框的ID。
如果您打算使用此方法,则需要从命令组件中删除update
属性。
答案 1 :(得分:0)
为什么不使用RequestContext#showMessageInDialog(FacesMessage)
?
根据用户指南:
在对话框中显示FacesMessages是一种常见的情况,其中a facesmessage需要首先添加到上下文中,对话框内容 包含消息组件需要更新,最后是对话框 与客户端api一起显示。 DF(Dialog Framework)有一个简单的实用程序可以绕过 这个过程通过提供快捷方式;
使用此功能,您无需在每个页面中添加其他代码。只需将它添加到您的bean中。