2

嗨,我正在以编程方式构建 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,这样做的方法是什么?

4

1 回答 1

3

DefaultMenuModel#getContents()您可以通过返回 a来获取它们,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);
于 2013-02-01T11:51:20.273 回答