我正在使用primefaces并想添加breadcrumb菜单。 我应该如何动态加载我的面包屑? 你有什么建议或经验?
<p:breadCrumb>
<p:menuitem value="Categories" url="#" />
<p:menuitem value="Sports" url="#" />
<p:menuitem value="Basketball" url="#" />
<p:menuitem value="NBA" url="#" />
<p:menuitem value="Teams" url="#" />
<p:menuitem value="L.A. Lakers" url="#" />
<p:menuitem value="Roster" url="#" />
<p:menuitem value="Kobe Bryant" url="#" />
</p:breadCrumb>
答案 0 :(得分:7)
BreadCrumb作为属性中的model
。这个用于动态创建menuitem,就像这个来自Primefaces Documentation的MenuBar的例子一样(当然,你必须为BreadCrumb调整这个):
public class MenuBean {
private MenuModel model;
public MenuBean() {
model = new DefaultMenuModel();
// First submenu
DefaultSubMenu firstSubmenu = new DefaultSubMenu("Dynamic Submenu");
DefaultMenuItem item = new DefaultMenuItem("External");
item.setUrl("http://www.primefaces.org");
item.setIcon("ui-icon-home");
firstSubmenu.addElement(item);
model.addElement(firstSubmenu);
// Second submenu
DefaultSubMenu secondSubmenu = new DefaultSubMenu("Dynamic Actions");
item = new DefaultMenuItem("Save");
item.setIcon("ui-icon-disk");
item.setCommand("#{menuBean.save}");
item.setUpdate("messages");
secondSubmenu.addElement(item);
item = new DefaultMenuItem("Delete");
item.setIcon("ui-icon-close");
item.setCommand("#{menuBean.delete}");
item.setAjax(false);
secondSubmenu.addElement(item);
item = new DefaultMenuItem("Redirect");
item.setIcon("ui-icon-search");
item.setCommand("#{menuBean.redirect}");
secondSubmenu.addElement(item);
model.addElement(secondSubmenu);
}
public MenuModel getModel() {
return model;
}
}
在此之后你只需要在你的面包屑中调用这样的模型:
model="#{menuBean.model}"