Boa tarde, estou desenvolvendo uma aplicação onde tem combos dependentes de estado e cidade. Está carregando o estado normalmente, porém não consigo carregar a cidade de acordo com o estado. Alguém pode me ajudar onde estou errando? vou postar trecho de onde está dando erro:
`public class CidadeDao implements Serializable {
private static final long serialVersionUID = 1L;
private EntityManager entityManager;
public Cidade buscarPeloId(Integer id){
return entityManager.find(Cidade.class, id);
}
@SuppressWarnings("unchecked")
public List<Cidade> buscarCidades(Estado estado){
Session session = this.entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(Cidade.class);
if(estado !=null){
criteria.add(Restrictions.eq("estado", estado));
}
return criteria.list();
}
}
`
no meu managedBean está assim:
` }
public List<Cidade> getCidades() {
return cidades;
}
public void setCidades(List<Cidade> cidades) {
this.cidades = cidades;
}
public void carregarCidades(){
cidades = cidadeDao.buscarCidades();
}
`
no meu form
`
<h:outputText value=" " />
<p:selectOneMenu id="estado" value="#{contatoMB.contato.estado}"
label="#{msg['label.contato.estado']}" required="false"
requiredMessage="O campo Estado é Obrigatório!"
styleClass="input-large" placeholder="Estado" size="5">
<f:selectItem itemLabel="Estado" noSelectionOption="true" />
<f:selectItems value="#{contatoMB.estados}" var="e"
itemLabel="#{e.sigla}" itemValue="#{e.sigla}" />
<p:ajax execute="@this" render="cidade" listener="#{contatoMB.carregarCidades}" />
<!-- <p:ajax event="change" listener="#{contatoMB.carregarCidades}"
update="cidade" /> -->
</p:selectOneMenu>
</div>
</div>
<div class="controls-row" align="center">
<label class="control-label"><h:outputText value="" /></label>
<div class="controls">
<p:selectOneMenu id="cidade" value="#{contatoMB.contato.cidade}"
label="#{msg['label.contato.cidade']}" required="false"
requiredMessage="O campo Cidade é Obrigatório!"
styleClass="input-large" placeholder="cidade" size="5">
<f:selectItem itemLabel="Cidade" noSelectionOption="true" />
<f:selectItems value="#{contatoMB.cidades}" var="c"
itemLabel="#{c.nome}" itemValue="#{c}" />
</p:selectOneMenu>
</div>
</div>`