我无法呈现 primefaces 的 breadcrumb 控件。我正在使用 ui:repeat 动态构建面包屑。当我将它包裹在 p:breadCrumb 标签中时,我无法在页面上看到该控件
以下是我在 .xhtml 中使用的代码
<p:breadCrumb>
<ui:repeat value="#{conversationScope.trail}" var="bcrumb">
<h:outputLink value="#{bcrumb.url}">
<h:outputText value="#{bcrumb.label}" />
<h:outputText value=">" />
</h:outputLink>
<p:menuitem value="#{bcrumb.label}" url="#{bcrumb.url}" />
</ui:repeat>
</p:breadCrumb>
请问还有其他选择吗?
最佳答案
构建一个<p:breadCrumb>
在 PrimeFaces 中动态地创建菜单,您会希望在 bean 中使用 MenuModel 对象来呈现 breadCrumb 组件。循环遍历创建 MenuItems 的路径列表并将它们添加到 MenuModel 对象。
在你的 .xhtml 中
<p:breadCrumb model="#{crumbBean.model}" />
将菜单项添加到面包屑菜单的 Bean。
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;
@ManagedBean
@RequestScoped
public class CrumbBean {
private MenuModel model;
public CrumbBean() {
model = new DefaultMenuModel();
MenuItem item1 = new MenuItem();
item1.setValue("First");
item1.setUrl("#");
model.addMenuItem(item1);
MenuItem item2 = new MenuItem();
item2.setValue("Second");
item2.setUrl("#");
model.addMenuItem(item2);
}
public MenuModel getModel() {
return model;
}
}
关于java - primefaces 面包屑不适用于 ui :repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386356/