2

こんにちは、次のようにコンポーネントで使用されている DefaultMenuModel をプログラムで構築しています

`<p:breadCrumb id="pbreadcrumb" model="#{portalNavigator.model}"/>`

これは、タイプ DefaultMenuModel のオブジェクト モデルに MenuItem を追加する PortalNavigator Bean のコードです。

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()の を返すによって、それらすべてを取得できます。でそれらをループします。削除したいアイテムが見つかったら、メソッドを使用します。List<UIComponent>MenuItemIteratorIterator#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 に答える