当前位置: 首页 > 面试题库 >

重定向后通过以下方式保留FacesMessage进行演示 在JSF中

南宫浩皛
2023-03-14
问题内容

我有一个常见的问题:某个托管bean的操作会向上下文中添加一些消息:

FacesMessage fm = new FacesMessage("didn't work");
fm.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage(null, fm);
return "some-outcome";

然后我将结果映射faces-config.xml并配置为

<navigation-case>
    <from-outcome>some-outcome</from-outcome>
    <to-view-id>/view.xhtml</to-view-id>
    <redirect/>
</navigation-case>

view.xhtml我提出的消息:

<h:message globalsOnly="true" />

但是,它不起作用,因为执行重定向时消息会丢失。

我该如何解决?我发现这篇惊人的文章解释了如何使用,PhaseListener但我认为这种情况太普遍了,因此无法通过这种方式解决。我错了吗?我应该创建PhaseListener吗?还是还有其他标准解决方案?


问题答案:

和往常一样,BalusC的回答很好!

我只想添加一下,当我使用他的代码设置keepMessages属性时,不是为会话设置的,而是仅为该请求设置的(尽管它在Javadocs中说了什么)。

我将以下代码放在header.xhtml中 <c:set target="#{flash}" property="keepMessages"value="true" />

现在,它适用于每个页面,而无需每次在后备bean中需要时都进行设置。为此,您需要JSTL,并且不要忘记在xhtml标头中添加以下内容:
xmlns:c="http://java.sun.com/jsp/jstl/core"



 类似资料:
  • 问题内容: 我正在从JSF应用程序发送电子邮件。我需要它,以便当我发送电子邮件时,显示FacesMessage确认操作,然后浏览器重新加载到同一页面。我的代码显示了面孔,但没有重新加载同一页面。 这是我尝试过的,此代码重新加载页面,但未显示FacesMessage。 这是我发送电子邮件页面的代码: 请帮忙 问题答案: 如果要跨重定向保留,则应在对象上设置为。该范围是JSF2推出了新的范围。范围(和

  • 问题内容: 我有一个Web应用程序,可以将用户直接发送到某些特定页面(例如,他可以查看或编辑项目的页面)。为此,我们提供了一个特定的URL。这些网址位于 外 电流网络的应用程序(即,它们可以存在于另一网络的应用程序,或电子邮件)。 网址看起来像,其中: action 表示将用户重定向到的页面。您可以将其视为中的任何JSF操作的。 actionParam 是上一个操作的参数(通常是商品ID) 因此,

  • 问题内容: 我有以下工作代码可通过本地护照策略进行身份验证: 但是,理想情况下,我想从一条快速路径处理错误和成功消息,而不是重定向到两条额外的路径。 这可能吗?我尝试使用“自定义回调”,但由于某种原因似乎在序列化用户时出错。 问题答案: 您可以使用自定义回调,例如: 在err对象中,您可以找到所有必需的错误,这些错误在身份验证时出现。

  • 所以我用下面的方法设置了摄像头- 如您所见,我在摄像机参数上使用了setRoation()来实际指定图像方向,并在摄像机本身上使用了setDisplayOriation()来处理表面预览中的方向更改。(注释和未注释的代码似乎都没有保留方向。当我检查数据时,它返回0) 之后,在回调中,我甚至尝试使用矩阵保存具有方向的图像。 实际问题 > 当我在肖像模式下拍照时,一切正常。它看起来像是被拿走了。 但是

  • 我在两台主机上部署了一个Java web应用程序,前面有一个servlet过滤器。我向一台主机上的应用程序发送了一个POST请求,该请求被过滤器拦截并重定向到另一台主机: 在第二台机器上,请求通过过滤器并由资源类中的REST API处理。 对象作为POST请求正文的一部分发送。重定向之后,请求正文不会发送过来,为空。如何在重定向之后保留请求正文(或至少保留请求正文的这一部分)? 谢了。

  • 我想重定向用户回到他们在Laravel 5成功登录后登录页面之前查看的页面。目前,如果用户写了一个错误的用户名/密码,他会被重定向到登录页面,显示错误,我想保持这种方式。另外,我希望当用户点击页面上的登录按钮时,以及当用户被自动重定向到登录页面时,此功能能够正常工作。 在我看来 是这里的关键,但我不知道如何让它“重定向到不是登录页的最后一页”。感谢您的帮助。