Tenho hoje listas com dados das minhas tabelas, como por exemplo:
Estados
[todos os estados]
Cidade
[todas as cidades]
Gostaria de quando fosse escolhido por exemplo estado SC, que trouxesse somente as cidades que estejam atreladas ao estado SC, no caso que recarregasse o meu HtmlSelectOneMenu com sua lista de itens.
Tenho essa aplicaçao feita em JSF, onde tudo é criado dinamicamente, nada é por html.
Mas se tiverem alguma sugestão de como fazer, nem que seja em html mesmo.
Eu uso Richfaces. Com a tag a4j:support, você “chama” o método do seu controller e “renderiza” o componente de sua escolha.
No código abaixo, ao modificar a combo uf (a4j:support com event=“onchange”), é chamado o método seuController.carregaMunicipios(), esse método carrega a list de municípios do meu controller listaMunicipioTOs, e depois atualiza o component “municipio” com todos os municípios da UF.
Obs.: A tag s:selectItems e do JBoss Seam. Se você estiver usando o JSF, use o f:selectItems.
<!-- CAMPO UNIDADE DA FEDERACAO --><h:outputLabelvalue="UF:"id="ufLabel"/><h:selectOneMenuid="uf"value="#{seuController.siglaUF}"><s:selectItemsvalue="#{seuController.ufs}"noSelectionLabel="Selecione..."var="uf"label="#{uf.getSiglauf()}"itemValue="#{uf.getSiglauf()}"/><a4j:supportaction="#{seuController.carregaMunicipios()}"ajaxSingle="true"event="onchange"reRender="municipio"/></h:selectOneMenu><!-- CAMPO MUNICIPIO --><h:outputLabelvalue="Município:"id="municipioLabel"/><h:selectOneMenuid="municipio"value="#{seuController.codigoIbge}"><s:selectItemsvalue="#{seuController.listaMunicipioTOs}"noSelectionLabel="Selecione..."var="municipio"label="#{municipio.getMunicipio()}"itemValue="#{municipio.getCodigoIbge()}"/><rich:ajaxValidatorevent="onblur"/></h:selectOneMenu>