是否有用于实现面包屑导航的 JSF 组件?

Posted

技术标签:

【中文标题】是否有用于实现面包屑导航的 JSF 组件?【英文标题】:Are there any JSF components for implementing breadcrumb navigation? 【发布时间】:2011-02-18 01:54:57 【问题描述】:

据我所知,有两种“类型”的面包屑。

静态/层次结构

像堆栈一样工作 当用户“深入”到网站时,会推送条目 当用户“向上”进入网站时会弹出条目 对所有用户都相同(对于给定页面) 显示位置而不是历史

一个简单的例子是 HOME -> BIG CATEGORY -> SMALL CATEGORY -> ARTICLE

动态的/历史的

像队列一样工作 当用户转到另一个页面时,条目会在最后推送 达到最大尺寸时从前面删除条目 每个用户都不同,因为它是个性化的。 显示时间线/历史记录而不是位置。

一个简单的例子是 SMALL CATEGORY -> HOME -> BIG CATEGORY -> HOME

问题是:

是否有任何现成的 JSF 组件用于这些类型的导航?

【问题讨论】:

【参考方案1】:

见 primefaces,有很多组件,你也可以找到面包屑 http://www.primefaces.org:8080/showcase/ui/breadCrumb.jsf

【讨论】:

很好,但这只是演示部分。我对利用 JSF 的后端部分感兴趣。我可以很容易地用 jQuery/CSS 为用户创建一个有吸引力的面包屑。 @kazanaki:你在自相矛盾。您要求的是 JSF 组件。但是您显然对如何自己实现一个更感兴趣。嗯,它是开源的。看一看。特立尼达也有一个。 @BalusC:我明白你在说什么,也许我的问题不清楚。假设我选择了 primeface 组件。然后,除非我弄错了,否则我仍然需要手动创建一个服务器端数据结构,primefaces 只会渲染。我期望插入 FACEScontext 并自动跟踪页面重定向的东西。否则,除了这个数据结构上的简单迭代器和 h:outputtext 之外,我从 primefaces 中得到什么?我不想自己实现任何东西。更少的代码是最好的。但是我用 primefaces 组件填充它并没有真正获得任何东西。 您基本上想要一个将当前 URL 或 viewid 添加到会话范围内的某个列表的 3rd 方过滤器或阶段监听器? @BalusC 是的,这样的东西会很棒!【参考方案2】:

我也有同样的问题!但我觉得解决方案将是@BalusC 提到的解决方案

现在,我只使用面包屑来获取当前视图路径。

 <h:form id="breadcrumb">
                        <p:breadCrumb>
                            <p:menuitem value="#bundle.Index" action="/index?faces-redirect=true" immediate="true"/>
                            <p:menuitem value="#view.viewId.substring(0, view.viewId.length()-6)" url="#view.viewId.substring(0, view.viewId.length()-6).jsf" ajax="false"/>

                        </p:breadCrumb>
                    </h:form>

我使用 .jsf 作为 Faces URL 模式,并且由于 viewid = /*.xhtml**,我不得不对其进行子串化,删除 .xhtml 子字符串并添加 .jsf 字符串。

所以我们需要一个支持 bean 来完成获取 viewid(路径)并将其放入有序列表的工作。 javascript:history.back() 和 history.forward() 的使用也是可以的!

【讨论】:

以上是关于是否有用于实现面包屑导航的 JSF 组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用面包屑导航组件

组件 --BreadCrumb--面包屑

vue中面板屑导航组件实现

iOS:带有面包屑路径的自定义导航栏?

react函数式组件(非路由组件)实现路由跳转

测开之路一百一十八:常用组件之面包屑导航和分页导航