【发布时间】:2015-03-15 01:59:52
【问题描述】:
我正在开发一个带有 PrimeFaces 树导航的 JSF web 应用程序。
例如:
- 项目 1
- 客户 1
- 客户 2
- 项目 2
- 客户 3
- 等
当用户点击一个节点时,backing bean 会像这样转发到相应的页面:
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), "null", "/" + /*Page Name*/ + ".xhtml");
从项目页面导航到客户页面或以其他方式导航时,这不是问题。但是,当我在一个项目页面上并尝试导航到另一个项目页面(比如从项目 1 到项目 2)时,页面不会刷新(可能是因为 JSF 假定它已经在正确的页面上)。
当导航到自身时,如何强制 JSF 刷新页面?
我不想使用faces-redirect=true 来防止浏览器中的 URL 发生变化。
谢谢!
【问题讨论】:
-
在这种情况下什么是“刷新”?
Project 1和Project 2,它们是否意味着/代表两个不同/独立的应用程序在各自不同的上下文中运行(在此您对跨上下文转发感兴趣,这反过来可能不受所有容器的支持/允许 - 很大警告,不应低估)? -
对不起,我应该澄清一下:项目 1 和 2 指的是同一页面,但内容不同。这是一个显示项目详细信息的页面,但是当我在项目 1 的页面上并单击项目 2 时,它不会刷新,所以它仍然显示项目 1 的信息。
-
停止滥用 POST 进行导航并使用 GET。
标签: jsf jsf-2 primefaces