2

次のようにしたリッチ:コンボボックスの作成に問題があります

<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として定義されているため、コードを修正することで、それ以外の変更を加えることなくおそらく機能します。SelectItem だけでなく UISelectItem を使用する理由はありますか?

于 2009-08-25T07:51:13.320 に答える