是否有用于实现面包屑导航的 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 组件?的主要内容,如果未能解决你的问题,请参考以下文章