Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > rich:comboBox как получить значение


Автор: Nikola661 15.12.2011, 04:48
Доброе!

Загружаю в rich:comboBox справочник из БД, как всегда id и значение.
Сам comboBox отображает значение и передает его, т.е. текст, а мне надо id.
Код

<rich:comboBox id="tcrId" value="#{requestCtrl.typeCr.tcrId}"
        valueChangeListener="#{requestCtrl.valueChanged}"
        selectFirstOnUpdate="false" defaultLabel="Выбрать" >
    <f:selectItems value="#{requestCtrl.typeCrs}" />
    <a4j:support event="onselect" ajaxSingle="true"/>
</rich:comboBox>



Код

private List<TypeCr> typeCrList;
private List<SelectItem> typeCrs = new ArrayList();

public void valueChanged(ValueChangeEvent event) {
    System.out.println("valueChanged: "+(String)event.getNewValue());
}

public void setTypeCrList(List<TypeCr> typeCrList) {
    this.typeCrList = typeCrList;
    if (this.typeCrList.size()>0) {
        this.typeCrs.clear();
        for(int i=0;i<typeCrList.size();i++) {
            System.out.println(typeCrList.get(i).getTcrId() + ">>>" + typeCrList.get(i).getTcrName());    
            SelectItem item = new SelectItem(typeCrList.get(i).getTcrName(),
                            typeCrList.get(i).getTcrId().toString());
            typeCrs.add(item);
        }
        setTypeCrs(typeCrs);
    }
}

.....

public void setTypeCrs(List<SelectItem> typeCrs) {
    this.typeCrs = typeCrs;
}
.....


Как можно реализовать или может есть другой способ, не толькло comboBox!?
СПАСИБО!!!

Автор: m0zg 20.12.2011, 12:16
Насколько я помню (давно не работал с Rich Faces), разработчики всё ещё никак не реализуют эту возможность для компонента rich:comboBox, т.е. чтоб в value был id integer. Т.е. по аналогии с тэгом <select />. Они почему-то сделали, чтоб всегда брался String из списка, который в значении (или что-то типа того). Что очень странно smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)