Pessoal, como faço para pegar o valor selecionado em um componente selec one menu?
Agardeço
Venom
Pessoal, como faço para pegar o valor selecionado em um componente selec one menu?
Agardeço
Venom
<h:selectOneMenu value="#{SeuBean.suaPropriedade}">
<f:selectItems value="#{SeuBean.items}"/>
</h:selectOneMenu>
o atributo value vai fazer a ligacao com o atributo do seu managedbean chamando o setSuaPropriedade(…)
espero ter sanado sua duvida.
hmm…
não é isso
eu to precisando de um metodo que pegue o valor selecionado
simplificando: Este componente é como um combobox certo?
imagine ele preenchido com as siglas do estado
e imagine que o usuario seleciona “RJ” e clica no botao "processar"
Eu preciso de um metodo que pegue o valor selecionado, neste caso “RJ”
é exatamente isto que o exemplo que foi mostrado faz …
o valor selecionado vai aparece na propriedade configurada …
Acho q entendi qual q tah sendo o teu problema…
Vc quer por exemplo, escolher uma opcao dentre varias de um componente, certo?!
Entao eh exatamente o que o camarada acima fez…
A unica coisa que vc tem que ter em mente, e q parece q nao tá muito claro, é que pra cada atributo de um managed bean, caso alguma de suas propriedades esteja setada na página, o set e o get dessa propriedade é chamado automaticamente pelo faces.
Ou seja, se vc colocar uma variavel como value de um componente como o ‘selectOneMenu’ e alguns itens com valores, logo o selecionado vai ser o setado na propriedade do menu. Vai ser chamado o setPropriedade(itemSelecionado).
Vc possui duas maneiras de fazer isso. Ou vc pode faze-los fixos, caso nao aja necessidade de alteração. Ou vc pode fazer com que os valores (no exemplo abaixo foram usados estados) sejam dinamicos, ou seja, venha de um banco de dados.
Pro primeiro caso: (exemplo de selecionar estados fixos)
<h:selectOneMenu value="#{estadoBean.sigla}">
<f:selectItem itemValue="RJ" itemLabel="Rio de Janeiro"/>
<f:selectItem itemValue="SP" itemLabel="São Paulo"/>
...
</h:selectOneMenu>
Pro segundo caso: (mesmo exemplo mas dinamico)
Vc pode representar os itens do selectOneMenu no managedBean. Para cada item que voce quiser, voce deve instanciar um SelectItem (javax.faces.model.SelectItem), colocar o seu label e value (que podem vir do db, por exemplo os estados) e adiciona-lo a uma collection, por exemplo um ArrayList.
Quando vc setar essa collection contendo SelectItems no value do <f:selectItems> do menu na pagina, logo o faces montará seu menu de acordo com os items contidos na collection do bean.
Dai serve o exemplo do camarada acima...
<h:selectOneMenu value="#{estadoBean.sigla}">
<f:selectItems value="#{estadoBean.items}"/>
</h:selectOneMenu>
Onde sigla vai ser o valor selecionado.
Onde items é a collection<SelectItem> vinda do managed bean.
Vlw!
é isso aí, agora acho que está bem explicado. acabei sendo simplista demais na minha resposta.
vlw!
Pessoal,
E qdo o value do selectOneMenu é um atributo de tipo Long, como devo proceder?
Pergunto isto pois não estou conseguindo fazer o submite da pagina pois este atributo value está como tipo Long, mas se boto um string qq ele funciona, o problema é q ai não resolve meu problema pois preciso usar este codigo de tipo Long para realizar a pesquisa.
Estou dando manutenção em um código e até agora este tem sido meu carma por quase 2 dias.
Obrigado desde já por qq ajuda.
as vezes pode ser incompatibilidade do componente…dái vc precisaria passar como String para o JSF e recuperar como String também…
feito isso use um String valor = String.valueOf(valorLong);
acho q resolveria…
[/]'s
Também estou com a mesma dúvida, alguém pode me ajudar?
Estou passando um Array de Objetos para o selectItems e preciso pegar apenas um valor (Long ‘id’) do Array de Objetos…
Como faço isso, preciso fazer alguma conversão?
?
Boa tarde!
Estou com este problema também, mas no meu caso eu tenho o seguinte:
[code]
<f:selectItems value="#{statesBean.states}"></f:selectItems>
o states é um List
e ele da o seguinte erro:
javax.el.ELException: /pages/main.xhtml @19,51 value="#{statesBean.states}": Error reading ‘states’ on type br.com.imobiliaria.bean.StateBean
Estou apenas começando a estudar isso provavelmente o erro é simples mas já estou a boas horas buscando pela solução
Obrigado desde já
?
Pessoal tudo bem?
sou novo no forum e em java, estou tendo um problema semelhante, o problema e o seguinte, tenho o codigo do selectOneMenu abaixo.
<h:selectOneMenu value="#{tbBairro.tbClassificacao}" required="true">
<s:selectItems value="#{tbBairroHome.getClassificacao()}" var="classificacao"label="#{classificacao.descricao}" noSelectionLabel="selecione"/>
Preciso pegar o valor selecionado e passar para o persist do hibernate gravar no banco, porem nao consigo passar este valor.
nao sei se fui claro.
Obrigado
Se você quiser passar um objeto que não seja primitivo é necessario criar um converter…
Mostra um exemplo ai mano !