Olá,
Estou desenvolvendo uma aplicação em JSF no qual tem um modulo que preciso escolher a cidade em que o usuário irá viajar. Estou com o seguinte problema tenho um combobox de estados que quando o estado é selecionado o combobox de cidades deveria puxar as cidades do estado escolhido, pois bem já procurei em diversos foruns inclusive aqui e não achei uma solução pro meu problema. Segue o codigo da MB e da pagina.
<h:outputText value="Roteiro:"/>
<h:outputText value="UF: "/>
<h:selectOneMenu id="comboEstado" value="#{diariaBean.estado.uf}" >
<f:selectItems value="#{diariaBean.popularEstados}"/>
<a4j:support event="onchange" ajaxSingle="true" action="#{diariaBean.popularCidades}" reRender ="comboEstado,comboCidades"/>
</h:selectOneMenu>
<h:selectOneMenu id="comboCidades" value="#{diariaBean.cidade.nome}">
<f:selectItems value="#{diariaBean.listaDoSelectItem}"/>
</h:selectOneMenu>
Codigo do MB que popula o estado e cidade
public List<SelectItem> getPopularEstados() {
this.setListaDoSelectItem(new ArrayList<SelectItem>());
List<String> estados = new ArrayList<String>();
for (Estado e: listEstado){
estados.add(e.getUf());
}
Set<String> hashset = new HashSet<String>(estados);
estados = new ArrayList(hashset);
Collections.sort(estados);
for (String estadolocal: estados){
this.listaDoSelectItem.add(new SelectItem(estadolocal));
}
return this.listaDoSelectItem;
}
public List<SelectItem> getpopularCidades() {
this.setListaDoSelectItem(new ArrayList<SelectItem>());
List<String> cidades = new ArrayList<String>();
for (Cidade c: listCidade){
if (c.getAeEstado().getUf().equals(this.estado.getUf())){
cidades.add(c.getNome());
}
}
Set<String> hashset = new HashSet<String>(cidades);
cidades = new ArrayList(hashset);
Collections.sort(cidades);
for (String cd: cidades){
this.listaDoSelectItem.add(new SelectItem(cd));
}
return this.listaDoSelectItem;
}
Quando executo a aplicação e escolho o estado acontece o seguinte erro
javax.faces.FacesException: #{diariaBean.popularCidades}: javax.el.MethodNotFoundException: /paginas/usuario/admin/diarias/eRDiaria2.xhtml @28,157 action="#{diariaBean.popularCidades}": Method not found: [email removido]()
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:99)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
Quem souber uma solução agradeceria muito pois estou a quase um mês neste problema. Desde já agradeço a ajuda.