我试图通过编程代码创建一个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()
来生成它们。