java - 似乎无法弄清楚如何使用 primefaces 重定向到 .xhtml

标签 java jsf jsf-2 primefaces xhtml

我的主页 WebContent 文件夹中有一个 index.xhtml 文件。在那里我可以将一些数据发送到 Controller ,然后 Controller 将重定向到位于 WEB-INF/jsf/中的 list.xhtml 文件。 list.xhtml 位于 WEB-INF/jsf/中,因此如果不从索引页面发送数据则无法访问它。

无论如何,从 index.xhtml 到 list.xhtml 的重定向工作得很好(<p:commandButton /> 对 Controller 的操作)。问题是从 list.xhtml 导航回 index.xhtml。无论我做什么,它似乎都不起作用。

到目前为止我已经尝试过:

<h:button value="Go Back" outcome="index.xhtml" /> - 按钮变灰并显示消息 This button is disabled because a navigation case could not be matched .假设这是因为它正在 WEB-INF/jsf/中搜索 index.xhtml

<h:button value="Go Back" outcome="../../index.xhtml" /> - 结果同上

<p:commandButton value="Go Back" action="#{listController.goBack}" />action="#{goBackController.goBack}" - 使用 goBack() 方法返回与前面示例中结果值相同的内容

如果有人能将我推向正确的方向,我们将不胜感激。

我也知道网页不应该真正在 WEB-INF 中,但我不知道如何隐藏 list.xhtml 页面。

最佳答案

关于 outcome 有两件事你需要知道:

  1. 您不能使用带有 .xhtml 的完整页面名称作为 outcome 的值。例如,如果页面名称是 Example.xhtml,则正确的方法是 outcome="Example"
  2. 假设您现在位于此页面 http://yourdomain.com/app/folder/Page1.xhtml,如果您点击带有 outcome="Page2"的按钮",您将到达 http://yourdomain.com/app/folder/Page2.xhtml。您不能在 outcome 中使用 ../ 导航到父文件夹。

试试这个:

<p:button value="Go back" href="../../index.xhtml" />

如果它不起作用,在 href 中放置一个绝对路径应该可以完成这项工作。

关于java - 似乎无法弄清楚如何使用 primefaces 重定向到 .xhtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770401/

相关文章:

java - LoaderManager中initLoader和restartLoader的区别

java - 如何在 Java 中将 double 字四舍五入为所需的 1 位小数

html - 使用 JSF h :outputLink to produce a page anchor

jsf - 托管属性(property)继承

java - 将 EJB3 注入(inject)基于注释的 JSF2 支持 bean 导致 javax.naming.NameNotFoundException :

java - JPanel & 组件自动改变位置

java - 什么时候在 switch 语句中声明引用?

java - JSF 2.0 中的 Jquery

jsf-2 - 在 Tomcat 6 : @PersitenceContext doesn't work, EntityManager 中使用 JPA2 为空

ajax - 何时使用 valueChangeListener 或 f :ajax listener?