您好我正在以编程方式构建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,这是做什么的?
答案 0 :(得分:2)
您可以在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);