JSF:使用后退和前进按钮显示导航历史
我想知道如何在页面顶部向我的用户显示他的导航历史。像这样:JSF:使用后退和前进按钮显示导航历史,jsf,jsf-2,back,browser-history,forward,Jsf,Jsf 2,Back,Browser History,Forward,我想知道如何在页面顶部向我的用户显示他的导航历史。像这样: home > register > product 以及如何在JSF中实现后退和前进按钮。我读过,但没有一本真正解释如何实现这些功能。 我不想为此使用框架,我认为这是一件简单的事情,不需要使用框架 我认为完全用做一些事情不是一个好主意,我给你们举个例子: 用户在系统中输入: home > register 用户自己注册 home>login>register(有一个链接,他/她可以注册另一个用户) 正确的历史应该是
home > register > product
以及如何在JSF中实现后退和前进按钮。我读过,但没有一本真正解释如何实现这些功能。
我不想为此使用框架,我认为这是一件简单的事情,不需要使用框架
我认为完全用
做一些事情不是一个好主意,我给你们举个例子:
用户在系统中输入:
home > register
用户自己注册
home>login>register
(有一个链接,他/她可以注册另一个用户)
正确的历史应该是:
home > login > register
而不是
home > register
如果每个页面都有自己的.xhtml页面,那么只需硬编码面包屑即可。如果希望“后退”按钮正常工作,则在所有链接/按钮中,您需要向链接添加
?faces redirect=true
范例
<h:commandLink value="Test" action="blah.xhtml?faces-redirect=true" />
链接中第二个答案的哪一部分你不明白?使用LinkedList(由
LinkedList
实现的Stack
或由ArrayDeque
实现的Deque
将完成这项工作)并控制自己的推送和弹出操作一定不难,还可以在页面中创建一个部分来包含这些链接,即由
实现
总之,PrimeFaces已经用组件解决了这项工作的一部分,即使你不想使用第三方库来完成这项工作,你也可以查看一下,看看PrimeFaces的人是如何完成这项工作的。他可以使用任何链接。我只是在演示如何进行重定向。在这种特殊情况下,您的代码可以执行post重定向get,而get就足够了。另请参见@BalusC,如果我没有硬核的话使用这个后退和前进按钮会更好,因为我不知道用户的行为,所以它应该是更灵活的。第二个示例我理解你所说的,但是我如何将当前页面传递给类,以便它能够插入到linkedlist中?可以通过
#EL中的{view.viewId}
或Java中的UIViewRoot#getViewId()。正如Luiggi所暗示的那样,
将在到目前为止访问的所有页面上循环使用。