JSF Como filtrar uma combo através de outra combo?

13 respostas
luisandro

JSF Como filtrar uma combo através de outra combo?

Ex:

Eu tenho uma combo onde mostro a lista de estado e outra onde mostra a lista de cidades para selecionar.

Comoa faço para que quando selecionar um estado na combo de estado seja mostrado na combo de cidades somente as cidades daquele estado?

13 Respostas

fabiozoroastro

http://getahead.org/dwr/documentation
Isso vai te ajudar!

luisandro

Valeu! mas essa documentação não ajuda

luisandro

A intenção e usar o valueChangeListener do meu select para ativar uma ação que preencha o outro select com condição iqual ao item do select que foi selecionado.

luisandro

Será que ninguém nunca precisou fazer isso que estou perguntando?
Vamos lá pessoal da uma ajuda ai.

M

Também tenho a mesma dúvida em relaxão ao Struts2/Webwork.

fabiel

Aew brother conseguiu resolver o problema? To com essa duvida tbm !

nicholas.bittencourt

Acho que a solução acaba sendo essa mesma. Você implementa um metodo ChangeListener no seu ManagedBean que atualiza os campos da segunda combo de acordo com o que for preenchido na primeira. Não tem estresse…

Minha duvida é como submeter o form apos a mudança… Colocando o codigo no select funcionaria?

onchange="if (this.value != '') this.form.submit();"
B

Bem, minha experiencia com JSF ainda não é muito grande, mas acredito que usar injeção de dependencia deva resolver seu problema.



SeuBeanHandler
suaclasse
request
[color=red] [/color]

dependencia
#{ClasseDeDependencia}

[color=#444444] [/color]

Depois vc faz a referencia dentro do codigo e acredito que deve resolver.

T+++

Ferryman

Olá,

Seu problema pode ser resolvido com ajax4jsf.

não tenho como postar codigo do eclipse aqui entaou vou fazer na mao.
vai ser algo ± assim

<!-- combo 1 -->
<h:selectOneMenu>
    <f:selectItens binding="#{bean.itensCombo1} />
     <a4j:support event="onchange" actionListener="#{bean.metodoQuePreencheSegundaCombo}" re-render ="combo2"/>
</h:selectOneMenu>

<!-- combo 2-->
<h:selectOneMenu id="combo2" >
    <f:selectItens binding="#{bean.itensCombo2} />
</h:selectOneMenu>

Vc vai precisar de um bean com 2 listas de selectItem pra bindar aos selects na pagina.

Assim, quando vc mudar a combo 1 o metodo “metodoQuePreencheSegundaCombo” será chamado… neste método você faz a logica de filtro e preenche os selectItens bindados na combo 2. O rerender se encarrega de atualizar a combo na view com os valores que vc preencheu.

espero ter ajudado

[]s
Ferry

fabiel

aew Ferryman valew a ajuda.

a propósito o managed-bean ficaria da forma que o nosso colega barluciano
demonstrou ?

Ferryman

Eae,

O bean fica com escopo de request mesmo… e como managed Property vc teria as list de selectItem.
Não tenho nenhum exemplo completo pra postar agora, mas acredito que com isso v6 consigam fazer.

Abraços,
Ferry

felipeguerra

Como relembrar é viver, vamos lá!!!

No meu caso, eu tenho um cenário: dois combobox, o 2º é atualizado de acordo com a escolha do 1º, porém, no meu caso o método que popula o 2º sempre é invocado.

Como limito isso? Criando um atributo do tipo boolean no meu Bean e alternando o valor para fazer com que a tag rendered do 2º checkbox seja dinâmica?

Valeu

felipeguerra

Esqueçam, já fiz!

Criado 15 de março de 2007
Ultima resposta 21 de dez. de 2007
Respostas 13
Participantes 8