您好,我正在以编程方式构建 DefaultMenuModel,该组件正在使用该模型,如下所示
`<p:breadCrumb id="pbreadcrumb" model="#{portalNavigator.model}"/>`
这是 PortalNavigator Bean 中的代码,它将 MenuItem 添加到 DefaultMenuModel 类型的对象模型中。
DefaultMenuModel model=new DefaultMenuModel();
MenuItem item=new MenuItem();
item.setId("home");
item.setUrl("/getPortal");
item.setValue("Home");
model.addMenuItem(item);
我的问题是如何从 DefaultMenuModel 中删除 MenuItem,具体方法是什么?
最佳答案
您可以通过 DefaultMenuModel#getContents()
获取全部内容它返回 List<UIComponent>
您可以将其元素转换回 MenuItem
。在 Iterator
中循环它们。找到要删除的项目后,请使用 Iterator#remove()
方法。
Iterator<UIComponent> iterator = model.getContents().iterator();
while (iterator.hasNext()) {
MenuItem item = (MenuItem) iterator.next();
if (needsRemoval(item)) {
iterator.remove();
}
}
或者,如果您事先已经知道索引,您也可以这样做:
model.getContents().remove(index);
关于jsf - 如何从 Primefaces Breadcrumb 的 DefaultMenuModel 中删除 MenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641569/