gpt4 book ai didi

jsf-2 - 将 FacesMessage 传递到下一页

转载 作者:行者123 更新时间:2023-12-04 22:14:45 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to show faces message in the redirected page

(1 个回答)


6年前关闭。




我正在寻找一种优雅的 JSF 方式来执行此操作,并且想知道是否有任何普遍接受的做法来执行此操作。

当我从一个页面导航到另一个页面时,我希望新页面在 中显示 FacesMessage h:留言从最后一页传输的组件(实际上是 p:message 但应该是同一件事)。

例如,如果用户单击“创建文档”按钮,它会在成功时导航到新页面,并在新页面上显示成功消息。我希望我所有的数据库更改操作都以这种方式运行。

似乎 FacesContext 清除导航上的所有消息,所以我最接近的解决方案如下所示:

  • 将 FacesMessage 对象存储在 session bean 中。
  • 创建方法查询留言 在调用 的消息 bean 中FacesContext.getCurrentInstance().addMessage(..) 并从消息 bean 中删除消息。
  • 将 EL 引用添加到 查询留言 在目标页面中。
  • 放一个 p:留言在目标页面中。

  • 这似乎有点强制 - 有没有更好的方法来做到这一点?

    最佳答案

    Faces 消息确实是请求范围的。

    只需使用新的 JSF 2.0 Flash 范围: Flash#setKeepMessages() :

    context.addMessage(clientId, message);
    context.getExternalContext().getFlash().setKeepMessages(true);
    // ...

    这在当前的 Mojarra 2.1.13 版本中只有一个警告:重定向必须发生在 URL 中的相同“文件夹”中。这在即将到来的 2.1.14 中得到修复。另见 issue 2136 .

    关于jsf-2 - 将 FacesMessage 传递到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481506/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com