JSF:使用后退和前进按钮显示导航历史记录

时间:2012-11-28 16:47:13

标签: jsf jsf-2 back browser-history forward

我想知道如何向页面顶部的用户显示导航历史记录。像这样:

home > register > product

如何在JSF中实现后退和前进按钮。我读了some topics,但没有一个真正解释如何实现这些功能。 我不想为此使用一些框架,我认为这是一件简单的事情,没有必要使用框架。

我认为完全用<h:link />做一些事情并不是一个好主意,我会给你们一个例子:

用户在系统中输入:

home > register

用户自己注册

home > login > register(他/她可以注册其他用户的链接)

正确的历史将是:

home > login > register

而不是

home > register

2 个答案:

答案 0 :(得分:2)

您的链接中第二个答案的哪一部分您不明白?使用LinkedList(Stack实现的LinkedListDeque实现的ArrayDeque将完成工作)并控制自己推送和弹出操作一定不会很难,在您的网页中创建一个部分,以便拥有这些链接,即由<ui:repeat>实现。

无论如何,PrimeFaces使用breadcumb组件解决了部分工作,即使您不想使用第三方库来完成这项工作,您也可以查看sources看看PrimeFaces的工作人员是如何做到这一点的。

答案 1 :(得分:0)

如果您将每个页面都作为自己的.xhtml页面,那么您可以对面包屑进行硬编码。如果您希望后退按钮正常运行,则需要在所有链接/按钮中添加?faces-redirect=true到您的链接。

实施例

<h:commandLink value="Test" action="blah.xhtml?faces-redirect=true" />