动态创建组件两次



我试图通过编程代码创建一个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);

当我再次调用这个方法时,出现以下错误:异常报告

消息

服务器遇到一个内部错误(),阻止它完成这个请求。

异常javax.servlet.ServletException: Komponenten-ID j_idt3:j_id5 was already found

我能做些什么来解决这个错误?

您应该为使用setId()方法创建的组件分配唯一的id。

你可以自己生成id,或者使用:

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

来生成它们。

相关内容

  • 没有找到相关文章

最新更新