2

我在创建 rich:combobox 时遇到问题,我做了如下

<rich:comboBox selectFirstOnUpdate="false" defaultLabel="Enter some value">
    <f:selectItems value="#{userregister.selectItems}" />
</rich:comboBox>

在支持 bean 中,我创建了 selectItems,如下所示

 List<UISelectItem> selectItems;
 UISelectItem uisi = new UISelectItem();
 uisi.setItemLabel("label");
 uisi.setValue("value");
 selectItems.add(uisi);

但是我得到了一个例外,javax.servlet.ServletException: Value of tag <selectItems> attribute is incorrect.哪个是创建具有动态值的组合框的正确方法?

4

1 回答 1

5

它不起作用的原因是因为您没有在选择的项目上设置 itemValue。但是我从来没有使用过 UISelectItem 而是像这样使用 SelectItem :

List<SelectItem> selectItems = new ArrayList();
selectItems.add(new SelectItem('value', 
'label'));

这与说:

List<SelectItem> selectItems = new ArrayList();
SelectItem item = new SelectItem();
item.setItemLabel("label");
item.setItemValue("value");

selectItem 的值被定义为 itemValue 而不是值 btw 因此通过更正您的代码可能会在没有任何修改的情况下工作。您使用 UISelectItem 而不仅仅是 SelectItem 顺便说一句,有什么理由吗?

于 2009-08-25T07:51:13.320 回答