primefaces breadcrumb不使用ui:重复

时间:2011-06-17 13:21:34

标签: primefaces

我无法渲染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>

请建议有其他选择吗?

1 个答案:

答案 0 :(得分:5)

要在PrimeFaces中动态构建<p:breadCrumb>菜单,您需要在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;
    }

}