JSF selectOneMenu

Boa tarde Galera,

Estou com um pequeno problema mais não estou conseguindo resolver.

Preciso pegar a descrição do combo selecionado, mais não estou conseguindo…O que eu consigo recuperar é apenas o codigo.

segue o trecho do codigo do managedBean


//Carrega comboBox:


for( Produto p : produtoList ){
        itensProduto.add( new SelectItem(p.getIdProduto(), p.getDsProduto()));
    }
return itensProduto;

trecho do jsf


<h:selectOneMenu id="idProduto"  value="#{MBMovimentacao.movItensBean.idProduto.idProduto}" converter="SimpleIndexConverter">
                   <f:selectItem itemValue="" itemLabel="Selecione uma opção"/>
                   <f:selectItems value="#{MBMovimentacao.itensProduto}" />
                </h:selectOneMenu>

O código esta perfeitamente funcionando, o problema é que não consigo pegar o código e a descrição ao mesmo tempo.

Alguem jah fez ou tem alguma ideia…

Valeu galera t+

ola… eu não sei direito… mas da para pegar o codigo e a descrição ao mesmo tempo??

<h:selectOneMenu id="idProduto" value="#{MBMovimentacao.movItensBean.idProduto.idProduto}"
no seu codigo esta definido que o valor vai ser o id do produto… pega esse id e depois consulta sua descrição… é uma saida…

acho que o amigo de cima está correto, tb não conheço uma outra forma.

Não sei como está o seu converter, mas quando você usa converter deve enviar o bean para o select item e não o id. Ou seja, passe a instância do produto para primeiro parâmetro do construtor do SelectItem.

Esta alternativa eu tinha pensado, mas achei que poderia ser um pouco custoso na performance, uma vez que terá que realizar a consulta a base de dados, e em seguida adicionar a uma lista todos os itens que serão selecionados no combo…
Eu tambem tentei varias outras formas tambem mais não consegui pelos outros metodos do componente.

valeu galera.

se possivel, guarde a lista que popula a combo na sessão, e quando recuperar o id percorra a lista e pegue o vo.

Não vejo diferença significativa qto à performance da forma como você está fazendo em relação à usar um conversor. à não ser que resolva colocar tudo no escopo de sessão, isso evita consulta no BD mas também consome memória. Além do que, se você usa Hibernate, o mecanismo de cache dele é muito bom, e nem sempre que você executa uma query significa uma nova consulta no BD.

[quote=Sergio_2006]Esta alternativa eu tinha pensado, mas achei que poderia ser um pouco custoso na performance, uma vez que terá que realizar a consulta a base de dados, e em seguida adicionar a uma lista todos os itens que serão selecionados no combo…
Eu tambem tentei varias outras formas tambem mais não consegui pelos outros metodos do componente.

valeu galera.

[/quote]