selectOneMenu com um item já selecionado

1,236 views
Skip to first unread message

Fabio Luciano Goes

unread,
Aug 6, 2009, 1:41:43 PM8/6/09
to javasf
Senhores,

Alguem já passou por isso??

Tenho um cadastro de usuarios, que estão ligados a um setor e uma gerencia. No momento em que vou alterar o cadastro desse usuário, gostaria de povoar duas "selectOneMenu" com Gerencia e setor e já deixar um selecionado. seria o equivalente em html:

<SELECT NAME="Setor"
<OPTION VALUE="1"          >Setor 1

<OPTION VALUE="2"          >Setor 2
<OPTION VALUE="3" SELECTED >Setor 3 
<OPTION VALUE="4"          >Setor 4

</SELECT> 

Fabio Moraes

unread,
Aug 6, 2009, 2:21:41 PM8/6/09
to jav...@googlegroups.com
Boa tarde Fabio.

Um dia tive um mesmo problema, fiz da seguinte forma:

- criei um atributo do tipo HtmlSelectOneMenu e fiz o binding na tag;
- no construtor default do ManagedBean coloquei o seguinte código:
        HtmlSelectOneMenu m = new HtmlSelectOneMenu();
    m.setValue("3");

Deste modo sempre será selecionado por padrão.

Fábio Moraes
2009/8/6 Fabio Luciano Goes <fabioluc...@gmail.com>



--
http://www.smmarts.com.br/myjavasite
http://www.rootshell.be/~fabiomor

Fabio Luciano Goes

unread,
Aug 6, 2009, 3:13:50 PM8/6/09
to jav...@googlegroups.com
valeu cara,

vou tentar!!

2009/8/6 Fabio Moraes <fabi...@gmail.com>

Fabio Luciano Goes

unread,
Aug 6, 2009, 4:26:00 PM8/6/09
to jav...@googlegroups.com
Fábio

O binding na tag, vc fez para a classe m?

2009/8/6 Fabio Moraes <fabi...@gmail.com>

Fabio Moraes

unread,
Aug 7, 2009, 7:57:23 AM8/7/09
to jav...@googlegroups.com
Bom dia Fábio Goes

Na tag <h:selectOneMenu> coloque o seguinte:
<h:selectOneMenu binding="#{mBean.selectOne}">

No ManagedBean coloque o seguinte:
//atributo
HtmlSelectOneMenu selectOne;

//getters e setters do atributo selectOne (padrão JavaBeans)
...

Com isso funcionará tranquilamente

Glauco P. Gomes

unread,
Aug 7, 2009, 8:51:12 AM8/7/09
to jav...@googlegroups.com
Cara, acho que é mais facil fazer o seguinte:

<h:selectOneMenu value="#{mBean.valorSelectOneMenu}">
...
</h:selectOneMenu>

E no managed bean:

private Integer
valorSelectOneMenu = 2;

//getters e setters de
valorSelectOneMenu

Onde valorSelectOneMenu pode ser de qualquer tipo, e vc pode inicializa-lo no contrutor, na declaracao, no get, etc... Isso vai depender da sua situação/necessidade.

Glauco P. Gomes

Fabio Moraes escreveu:

Fabio Luciano Goes

unread,
Aug 10, 2009, 10:01:22 AM8/10/09
to jav...@googlegroups.com
Consegui.

Valeu !!

2009/8/7 Glauco P. Gomes <glauco...@yahoo.com.br>

Marcelo Magno

unread,
Aug 11, 2009, 3:28:37 PM8/11/09
to jav...@googlegroups.com
Glauco boa tarde.

Eu faço tb esse mesmo esquema do value com o valor default do objeto em questão. Costumava funcionar, mas quando o meu selectItens é uma coleção de objetos, e eu tenho no bean um objeto que tem como valor um dos objetos da coleção, ele as vezes seleciona, as vezes (a maioria) não seleciona.

Notei que nas vezes em que ele não seleciona o objeto com valor default, no html nenhuma das options aparece com o selected setado.

O Engraçado é que o mesmo select, depois de sofrer uma atualização via A4J funciona legal (vc ve no html o selected), mas no primeiro carregamento não.

Notei tb que isso sempre acontece com coleções de objetos (principalmente aqueles que são entidades, valores comuns funciona bem).

Como uso o seam, uso o s:selectItems para fazer os selects da coleção e o  <s:convertEntity/> no final (pois esses objetos são entidades).

Alguem já passou por algo parecido ?


Atenciosamente,
Marcelo Magno



2009/8/7 Glauco P. Gomes <glauco...@yahoo.com.br>
Cara, acho que é mais facil fazer o seguinte:

Sérgio Fantin

unread,
Aug 11, 2009, 3:39:22 PM8/11/09
to jav...@googlegroups.com
Outra forma:

<h:selectOneMenu id="categoria" value="#{categoriaFace.selectedCategoria.id}" required="true" requiredMessage="Escolha uma categoria" rendered="true">
       <f:selectItem itemValue="" itemLabel="Selecione..."/>
       <f:selectItems value="#{categoriaFace.categorias}" />
       <a4j:support event="onchange" ajaxSingle="true" action="#{categoriaFace.actionCarregaSubcategoria}" reRender="categoria,subcategoria/>
</h:selectOneMenu>

2009/8/11 Marcelo Magno <marcel...@gmail.com>



--
Sérgio Fantin
http://serjaum.wordpress.com

Marcelo Magno

unread,
Aug 11, 2009, 3:58:50 PM8/11/09
to jav...@googlegroups.com
Sérgio,

Troquei la, mas aqui pra mim continua sem selecionar o default.

pra ter certeza, mandei imprimir logo acima o objeto para ver se estava setado normalmente... e o problema eh mesmo no selecionar do item pois o objeto impresso direto no html (tanto quanto sua ID) eh impressa normalmente do objeto já inicializado.

Alguma outra ideia antes de partir para a sugestão do Binding na variavel SelectOneMenu no backingbean?

Atenciosamente,
Marcelo Magno



2009/8/11 Sérgio Fantin <sergio.l...@gmail.com>

Roan Brasil Monteiro

unread,
Aug 11, 2009, 3:42:02 PM8/11/09
to jav...@googlegroups.com
Sérgio esse método funciona em partes, mas tu precisaria de implementar um converter ai...

2009/8/11 Sérgio Fantin <sergio.l...@gmail.com>



--
Atenciosamente,

Roan Brasil Monteiro
http://roanbrasil.wordpress.com/

Glauco P. Gomes

unread,
Aug 11, 2009, 7:56:05 PM8/11/09
to jav...@googlegroups.com
E a lista do selectItens ta carregada tb?

O valor do selectOneMenu tem que ser um dos itens do selectItens.

Não utilizo o Seam, utilizo o Trinidad e para os itens utilizo o t:selectItens do Tomahawk, sempre que faço com objetos "complexos" funciona normalmente, talvez vc esteja esquecendo alguma coisa.

Glauco P. Gomes

Marcelo Magno escreveu:
Reply all
Reply to author
Forward
0 new messages