JSF: Combobox dependente de outro

Pessoal, boa tarde. Estou eu aqui mais uma vez para pedir ajuda. Meu cenário é o seguinte:

Tenho duas classes. Essas duas classes populam duas combobox. Mas a segunda classe depende da primeira. O valor que eu escolher na primeira será condicional para aparecer os respectivos valores na segunda combobox.

Seguem minhas classes e arquivos:

Classe AreaPrincipal

Classe AreaSecundaria

AreaPrincipalDAO

AreaSecundariaDAO

AreaPrincipalMB

AreaSecundariaMB

As combos funcionam. Mas a segunda combo (AreaSecundaria) só deve mostrar os dados referentes ao valor que eu escolher na primeira combo (AreaPrincipal).

Não sei como fazer. Se alguém puder me ajudar, ficarei muito agradecida.

Muito obrigada.

Boa tarde!

  • Quando você selecionar um item do primeiro combo, você faz a pesquisa no banco para trazer os itens e então atualiza o segundo combo

É interessante você postar o código da página xhtml, boa parte é feito la também

Para executar um método assim que clicar no combo, você pode utilizar um ajax com o event itemSelect e utilizar o update para atualizar o segundo combo

Olá Mike, muito obrigada por tentar me ajudar mais uma vez rs.

Segue o código da minha página:

Muito obrigada!

No próprio showcase do PrimeFaces tem um exemplo, da uma olhada:
https://www.primefaces.org/showcase/ui/ajax/dropdown.xhtml

Tenta utilizar o p:ajax, se não conseguir, posta como ficou

Olá Mike, boa tarde.

Muito obrigada pela resposta. Algumas coisas eu até consegui aproveitar. Mas o exemplo do link, pelo que eu entendi, não busca a informação do banco. Nas minhas combos, eu busco muita informação do banco. Fazer conforme o exemplo não é viável para mim :sob:. Mas de qualquer forma, muito obrigada pela a ajuda.

Se alguém souber me ajudar, ficarei muito agradecida.

Só chamar o método de acesso ao banco através do listener do p:ajax

Então Mike, eu até consigo buscar os dados no banco. Mas o que eu não estou conseguindo fazer é com que na segunda combo apareça apenas os dados referentes ao dado escolhido no combo Principal (primeira combo). :expressionless:

No código anterior você estava trazendo todos os registros, você alterou? Colocou um where?

Para atualizar o estado do combo, você precisa dar um update através do p:ajax

Acho que entendi sua mensagem. Vou tentar fazer hoje e amanhã. Depois posto aqui se consegui progredir ou não. Muito obrigada

Apenas um adendo: Imagens são prejudiciais.

Quem ajuda precisa copiar o código na mão e muitas vezes isso desmotiva a querer ajudar. Que tal, da próxima vez, você copiar o código, colar e formatar aqui no GUJ (usando a ferramenta </>)?

Nós gostamos muito de ajudar! Mas precisamos de uma forcinha para podermos ajudar melhor. ;]

[]'s

1 curtida

Ok. Vou tentar fazer isso na próxima vez, pois como sou nova no fórum, nunca utilizei esta ferramenta.

Fique tranquila! Estamos aqui pra ajudar.

Apenas uma observação para você obter uma experiência melhor aqui.

[]'s