0

programmcodeを介してHtmlSelectOneMenuを作成しようとしています。これは問題ではありません。私はそれをこのように実現しました:

final UISelectItem select = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);

//Items für DropDownMenü erstellen
List<SelectItem> items = new ArrayList<SelectItem>();
for (int k = 0; k < Gender2.values().length; k++){
    items.add(new SelectItem(Gender2.values()[k]));                
}

//Items dem DropDown Menü zuordnen
UISelectItems selectItems = new UISelectItems();
selectItems.setValue(items);
selectOneRadio = (HtmlSelectOneMenu) app.createComponent(HtmlSelectOneMenu.COMPONENT_TYPE);
selectOneRadio.getChildren().add(selectItems);
testgrid.getChildren().add(selectOneRadio);

このメソッドを再度呼び出すと、次のエラーが表示されます。例外レポート

メッセージ

descriptionサーバーで内部エラー()が発生したため、この要求を実行できませんでした。

例外javax.servlet.ServletException:Komponenten-ID j_idt3:j_id5はすでに見つかりました

このエラーに対して何ができますか?

4

1 に答える 1

-1

メソッドを使用して作成するコンポーネントには、一意のIDを割り当てる必要がありますsetId()

IDを自分でエーテル生成するか、次を使用できます。

FacesContext.getCurrentInstance().getViewRoot().createUniqueId()

それらを生成します。

于 2013-01-17T09:23:35.843 に答える