Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF:使用后退和前进按钮显示导航历史_Jsf_Jsf 2_Back_Browser History_Forward - Fatal编程技术网

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所暗示的那样,
将在到目前为止访问的所有页面上循环使用。