【发布时间】:2012-09-18 16:50:00
【问题描述】:
我正在寻找一种优雅的 JSF 方式来执行此操作,并且想知道是否有任何普遍接受的做法来执行此操作。
当我从一个页面导航到另一个页面时,我希望新页面在 h:message 组件中显示 FacesMessage(实际上是 p:message 但应该是相同的东西)从最后一页传输。
例如,如果用户单击“创建文档”按钮,它会在成功时导航到新页面,并在新页面上显示成功消息。我希望我所有的数据库更改操作都以这种方式运行。
似乎 FacesContext 清除了导航上的所有消息,所以我最接近的解决方案如下所示:
- 将 FacesMessage 对象存储在会话 bean 中。
- 在消息 bean 中创建一个方法 checkMessage,该方法调用 FacesContext.getCurrentInstance().addMessage(..) 并从消息 bean 中删除消息。
- 在目标页面中添加对 checkMessage 的 EL 引用。
- 在目标页面中放置一个p:message。
这似乎有点强迫 - 有没有更好的方法?
【问题讨论】:
标签: jsf-2