Mojarra 2.1.14 flash 范围消息并重定向到不同的路径

2024-02-04

根据这个:http://java.net/jira/browse/JAVASERVERFACES-2136 http://java.net/jira/browse/JAVASERVERFACES-2136flash-“范围”消息应该在重定向到不同路径上的页面后继续存在。我想在我的应用程序中使用类似的东西,所以我从这里下载了 javax.faces-2.1.14-20121003.074348-10 快照https://maven.java.net/content/repositories/snapshots/org/glassfish/javax.faces/2.1.14-SNAPSHOT/ https://maven.java.net/content/repositories/snapshots/org/glassfish/javax.faces/2.1.14-SNAPSHOT/去测试。

我的情况是这样的:我在根目录中有一个页面(称为 test.xhtml),在调用构造函数期间在视图范围的支持 bean 中进行检查并使用 Omnifaces 有条件地设置消息Message.addFlashGlobalInfo并使用 Omnifaces 重定向到根目录中的 index.xthmlFaces.Redirect()(感谢 BalusC!)。在index.xhtml中我有一个Primefaces

<p:messages id="msg" showDetail="false" autoUpdate="true" />

我也在其他页面中使用了上面描述的相同“配置”,并且当重定向到称为 bean 方法的同一页面时,它工作得很好。

那么,该消息不应该在不同的路径重定向中幸存下来吗?或者我是否误解了有关此问题的某些内容?也许这里还有其他问题?

提前致谢! (顺便说一句,我期待听到 BalusC 的意见:))


我只是用来调用一个 init 方法来设置消息和重定向,但再次没有消息出现!所以我认为 PostConstruct 也不会起作用..

确实,<f:event type="preRenderView">来不及设置闪现消息。当 JSF 当前处于渲染响应阶段时,无法创建 Flash 范围。您基本上需要设置闪现消息before渲染响应阶段。尽管名字preRenderView,这个事件实际上被触发了during渲染响应阶段(最开始)。

The @PostConstruct may准时,前提是not在渲染响应期间被调用。然而,这不能很好地与<f:viewParam>.

要解决此问题,因为您已经在使用 OmniFaces,只需使用<f:event type="postInvokeAction"> http://showcase.omnifaces.org/eventlisteners/InvokeActionEventListener.

<f:metadata>
    <f:viewParam name="some" value="#{bean.some}" />
    <f:event type="postInvokeAction" listener="#{bean.init}" />
</f:metadata>

也可以看看:

  • JSF - 从 @PostConstruct 重定向后保留 Faces 消息 https://stackoverflow.com/questions/12708156/jsf-keep-faces-messages-after-redirect-from-postconstruct/12729861#12729861
  • 使用ExternalContext.redirect()将面孔消息添加到重定向页面 https://stackoverflow.com/questions/10595760/adding-faces-message-to-redirected-page-using-externalcontext-redirect
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mojarra 2.1.14 flash 范围消息并重定向到不同的路径 的相关文章

随机推荐