java - primefaces 面包屑不适用于 ui :repeat

标签 java jsf 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>

请问还有其他选择吗?

最佳答案

构建一个<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/

相关文章:

java - JSF 应用程序中的多语言支持

css - 如何更改 primefaces growl 组件的 z-index?

javascript - Primefaces 打开 p :fileUpload programmatically

java - 如何设置 <p :selectOneMenu 的默认值

java - 如何使用javacv识别长宽可变的正方形或矩形?

java - 将数组的内容添加到组合框

java - 当用户摆弄 html 范围 slider 时如何更改内容(文本)?

java - 为什么从 https 切换到 http 时我的 session ID (JSESSIONID) 会发生变化? java jsf

java - 当用户关闭应用程序时服务不会停止

jsf - 如何将 Hibernate Validator 集成到 Tomcat 7 中?