Bom dia a todos,
tenho uma aplicação com jsf e hibernate, e ela funciona normalmente, porém
tenho no minha aplicação um combobox de estado e ao ser selecionado o estado deveria ser exibir as cidades, até ai tudo bem, as cidades são exibidas corretamente
estou tentando usar o valueChangeListener na minha aplicação(para mudar o combobox) mas ta dando um erro que eu nao estou entendendo, esta dando erro de NullPointerException ao mandar gravar no banco
alguém tem ideia do pq do erro de NullPointerException
eu estou usando o seguinte codigo para fazer isso
<h:selectOneMenu immediate="true" valueChangeListener="#{theSelectBean.mudaListaId}" onchange="submit()" id="pesEstado" value="#{theSelectBean.nomeestado}">
<f:selectItems value="#{gravaEstado.estados}" var="u" itemLabel="#{u.est_nom}" itemValue="#{u.est_nom}" />
</h:selectOneMenu>
</td>
<td>
<h:selectOneMenu id="cidId" required="true" value="#{gravaPessoas.cid_id}" >
<f:selectItems value="#{theSelectBean.cidades}" var="u" itemLabel="#{u.cid_nom}" itemValue="#{u.cid_id}" />
</h:selectOneMenu>
bean q manipula o valueChangeListener
public void mudaLista(ValueChangeEvent event) {
String idString = event.getNewValue().toString();
System.out.println("String: " + event.getNewValue().toString());
Session sessao = CriadorDeSessaoNovo.getSession();
Criteria listagem_query = sessao.createCriteria(Cidade.class).
createAlias("estado", "es").
addOrder(Order.asc("es.est_nom")).
add(Restrictions.eq("es.est_nom", event.getNewValue().toString()).
ignoreCase());
setCidades(listagem_query.list());
sessao.close();
//FacesContext.getCurrentInstance().renderResponse();
FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().getNavigationHandler().handleNavigation(
context, null, "sec_Pessoas_backup");
}
aki esta o metodo do managedBean q faz a gravação no banco
public void gravar() {
try {
Estado obj_estado = new Estado();
obj_estado.setEst_id(est_id);
Cidade obj_cidade = new Cidade();
obj_cidade.setCid_id(cid_id);
Pessoas obj_pes = new Pessoas();
if (getPes_id() != 0) {
obj_pes.setPes_id(pes_id);
}
obj_pes.setPes_bairro(AlteraLetras.retornaFrase(pes_bairro));
obj_pes.setPes_complemento((pes_complemento));
obj_pes.setPes_data_nascimento(pes_data_nascimento);
obj_pes.setPes_email_pessoal(pes_email_pessoal);
obj_pes.setPes_logradouro(AlteraLetras.retornaFrase(pes_logradouro));
obj_pes.setPes_prenome(AlteraLetras.retornaFrase(pes_prenome));
obj_pes.setPes_nome_meio(AlteraLetras.retornaFrase(pes_nome_meio));
obj_pes.setPes_sobrenome(AlteraLetras.retornaFrase(pes_sobrenome));
obj_pes.setPes_nom_completo((pes_prenome + " " + pes_nome_meio + " " + pes_sobrenome));
obj_pes.setPes_nome_italiano(AlteraLetras.retornaFrase(pes_nome_italiano));
obj_pes.setPes_nome_traduzido(AlteraLetras.retornaFrase(pes_nome_traduzido));
if (!getPes_nome_pais_origem().equals("")) {
obj_pes.setPes_nome_pais_origem(AlteraLetras.retornaFrase(pes_nome_pais_origem));
}
if (getPes_numero() != 0) {
obj_pes.setPes_numero(pes_numero);
}
obj_pes.setPes_rg_num(pes_rg_num);
obj_pes.setPes_rg_expedidor((pes_rg_expedidor));
obj_pes.setPes_rg_dat(pes_rg_dat);
if (getPes_cpf() != 0) {
obj_pes.setPes_cpf(pes_cpf);
}
if (getPes_cep() != 0) {
obj_pes.setPes_cep(pes_cep);
}
if (getPes_telefone1() != 0) {
obj_pes.setPes_telefone1(pes_telefone1);
}
if (getPes_telefone2() != 0) {
obj_pes.setPes_telefone2(pes_telefone2);
}
if (getPes_telefone3() != 0) {
obj_pes.setPes_telefone3(pes_telefone3);
}
obj_pes.setEstado(obj_estado);
obj_pes.setCidade(obj_cidade);
sessao.saveOrUpdate(obj_pes);
tx.commit();
sessao.close();
limpante();
FacesContext.getCurrentInstance().addMessage("FormPessoas:gravar", new FacesMessage("Informações gravadas com sucesso!"));
} catch (Exception erro) {
System.out.println("Erro na insersão : " + erro);
erro.printStackTrace();
tx.rollback();
sessao.close();
FacesContext.getCurrentInstance().addMessage("FormPessoas:gravar", new FacesMessage("Falha ao gravar informações!"));
}