【问题标题】:How to display success message after redirection to another JSF?重定向到另一个 JSF 后如何显示成功消息?
【发布时间】:2012-08-18 14:15:08
【问题描述】:

add_customer.jsf页面上成功将客户添加到我的JSF应用程序后,用户将被重定向到页面list_customers.jsf

我希望在此页面上显示成功消息。仅当用户确实来自 add_customer.jsf 页面时才应显示该消息。

我该怎么做?

【问题讨论】:

标签: java jsf jsf-2


【解决方案1】:

一种方法是在添加客户的操作方法中向 The Flash 添加一条消息。

如果设置消息的是那个页面(或者实际上是它背后的代码),您不需要明确检查用户是否来自add_customer.jsf。在目标页面上,您只需要一个 <h:messages> 组件。

我的一位同事在Sample CRUD application with JSF 发布了一个示例 CRUD 应用程序,该应用程序正是这样做的。

相关代码在支持 bean UserEdit 和重定向发生的 page 中。

请注意,如果您的 JSF 实现是 Mojarra,则 Flash 仅适用于同一目录中的页面之间。如果这让您感到困扰,请考虑为这个问题投票:http://java.net/jira/browse/JAVASERVERFACES-2136

【讨论】:

  • 我试过你的方法,但它显示错误:方法 getFlash() 未定义 ExternalContext 类型。
  • 您真的在使用 JSF 2,还是在您的构建路径中使用 JSF 2?
  • 我的构建路径上有 jsf-api ,jsf-impl ,jstl ,standard
  • 这听起来很老。当前的 Mojarra impl。是一个罐子。您部署到哪个 AS?
  • jsf2 实现 Mojarra impl ,不是吗?你有下载 Mojarra impl 的链接吗!
【解决方案2】:

最好的方法是使用<h:message> 标记,您可以使用该标记绑定可以在重定向到list_customer.jsf 之前填充的消息。

过去 3 到 4 年,我们一直在使用这种方法在我们的应用程序中显示消息,并且偶尔使用部分触发器在同一页面上刷新。

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2012-08-28
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    相关资源
    最近更新 更多