Jsf Show p:动态显示面包屑
我需要在ManagedBean中动态创建primefaces面包屑菜单,我在StackOverflow和primefaces上找到了动态菜单创建的示例。下面是我创建动态菜单的代码Jsf Show p:动态显示面包屑,jsf,primefaces,breadcrumbs,Jsf,Primefaces,Breadcrumbs,我需要在ManagedBean中动态创建primefaces面包屑菜单,我在StackOverflow和primefaces上找到了动态菜单创建的示例。下面是我创建动态菜单的代码 public class BreadCrumb { private MenuModel model; public BreadCrumb() { createMenu(); } @PostConstruct private void createMenu() { model = new
public class BreadCrumb {
private MenuModel model;
public BreadCrumb() {
createMenu();
}
@PostConstruct
private void createMenu()
{
model = new DefaultMenuModel();
// First submenu
DefaultSubMenu firstSubmenu = new DefaultSubMenu("First Sub Menu");
DefaultMenuItem item = new DefaultMenuItem("Item1");
item.setUrl("http://www.primefaces.org");
item.setIcon("ui-icon-disk");
firstSubmenu.addElement(item);
model.addElement(firstSubmenu);
// Second submenu
DefaultSubMenu secondSubmenu = new DefaultSubMenu("Second Sub Menu");
item = new DefaultMenuItem("Item2");
item.setIcon("ui-icon-disk");
item.setUrl("http://www.primefaces.org");
secondSubmenu.addElement(item);
//third sub menu
item = new DefaultMenuItem("Item3");
item.setIcon("ui-icon-close");
secondSubmenu.addElement(item);
//forth sub menu
item = new DefaultMenuItem("Item4");
item.setIcon("ui-icon-search");
secondSubmenu.addElement(item);
model.addElement(secondSubmenu);
}
public MenuModel getModel() {
return model;
}
}
我的xhtml是
<h:form>
<p:breadCrumb model="#{breadCrumbBean.model}">
</p:breadCrumb>
</h:form>
我似乎找不到任何创建动态面包屑的解决方案,如有任何帮助,将不胜感激将此添加到您的web.xml:
<context-param>
<param-name>facelets.SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
facelets.SKIP_注释
真的
,“当然,您必须将此项调整为面包屑…”
堆栈跟踪:
java.lang.ClassCastException: org.primefaces.model.menu.DefaultSubMenu cannot be cast to org.primefaces.model.menu.MenuItem`
告诉您不能在
中使用类org.primefaces.model.menu.default子菜单
此外,面包屑是一维结构,因此不能嵌套元素
因此,解决方案是使用org.primefaces.model.menu.MenuItem
的实现,比如org.primefaces.model.menu.DefaultMenuItem
,而不是org.primefaces.model.menu.DefaultSubMenu
例如:
model = new DefaultMenuModel();
DefaultMenuItem item = new DefaultMenuItem("Item1");
item.setIcon("ui-icon-disk");
item.setUrl("http://www.primefaces.org");
model.addElement(item);
item = new DefaultMenuItem("Item2");
item.setIcon("ui-icon-disk");
item.setUrl("http://www.primefaces.org");
model.addElement(item);
item = new DefaultMenuItem("Item3");
item.setIcon("ui-icon-close");
model.addElement(item);
item = new DefaultMenuItem("Item4");
item.setIcon("ui-icon-search");
model.addElement(item);
model = new DefaultMenuModel();
DefaultMenuItem item = new DefaultMenuItem("Item1");
item.setIcon("ui-icon-disk");
item.setUrl("http://www.primefaces.org");
model.addElement(item);
item = new DefaultMenuItem("Item2");
item.setIcon("ui-icon-disk");
item.setUrl("http://www.primefaces.org");
model.addElement(item);
item = new DefaultMenuItem("Item3");
item.setIcon("ui-icon-close");
model.addElement(item);
item = new DefaultMenuItem("Item4");
item.setIcon("ui-icon-search");
model.addElement(item);