Como carregar um selectOneMenu(combobox) atravez da escolha de um outro selectOneMenu- JSF
5 respostas
W
well
Boa noite pessoal… gostaria de saber como faço para carregar um selectOneMenu através de outro.
Por ex: tenho um BD com a sigla da UF, quando eu escolher a UF, carregar no proximo combo box todas as cidades daquela UF.
se alguem tiver um exemplo ou ago do tipo… estou utilizando JSF.
/**
* Listener que atualiza o combo de cidades dependendo do estado escolhido
*
* @param event
*/
public void trocaCidadesEstado(ValueChangeEvent event) {
// garantindo que o valor do combo de estados mudou
if (event.getNewValue() != event.getOldValue()) {
List<Cidade> lista = new ArrayList<Cidade>();
try {
lista = cidadesService.findCidadesByEstado(event.getNewValue().toString());
} catch (Exception e) {
...
}
this.listaCidades = MeuUtil.montaSelectItems(lista);
}
}
abraços
K
Kleber-rr
gigicantador:
Voce pode usar o valueChangeListener, que fará uma requisição a um bean no momento que um valor for alterado, no caso o estado.
/**
* Listener que atualiza o combo de cidades dependendo do estado escolhido
*
* @param event
*/
public void trocaCidadesEstado(ValueChangeEvent event) {
// garantindo que o valor do combo de estados mudou
if (event.getNewValue() != event.getOldValue()) {
List<Cidade> lista = new ArrayList<Cidade>();
try {
lista = cidadesService.findCidadesByEstado(event.getNewValue().toString());
} catch (Exception e) {
...
}
this.listaCidades = MeuUtil.montaSelectItems(lista);
}
}
abraços
Olá gigicantador, td bem?
Sei que o post é antigo, mas eu gostaria de sua ajuda… estou com o mesmo problema do colega, e estou apanhando um bocado pra usar esses combos aninhados. Vc pode ser mais específica em sua explicação? Sou iniciante em java e toda ajuda é bem vinda. Agradeço e abs.
C
ccefetpb
Da uma estudada em listeners ou manipuladores de eventos !
K
Kleber-rr
Valeu pela resposta. Já faz mais de mês que estou estudando sobre essas paradas, o problema é que fiquei emperrado em ajax, inclusive em um outro post…
revivendo o post…
gostaria de tirar uma duvida, estao tentar implementar a ideia passada por vocês,
mas o metodo no meu controller nem se quer é chamado…
o que poderia ser?!? alguma configuração que possa estar faltando?!?
estou utilizando JSF 2.0 + Facelets
tentei utilizar o ajax nativo nesta versão do JSF, porém sem sucesso!
obrigado(a)