我的主页 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
有两件事你需要知道:
- 您不能使用带有
.xhtml
的完整页面名称作为outcome
的值。例如,如果页面名称是Example.xhtml
,则正确的方法是outcome="Example"
。 - 假设您现在位于此页面
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/