seguinte, estava fazendo minha aplicação normalmente, ao terminar de conseguir efetuar o adicionar fui efetuar os outros procedimentos do crud, porem agora ao terminar todos os procedimentos de ajax e tudo mais, todo o formulario está ok, porem quando estou salvando agora está informando que o objeto orgao está vindo null. o que está me encabulando é que eu tou debugando e quando verifico esse outro objeto orgaoSelected nao está vindo null, esse new Orgao(); ja serve pra isso, evitar dele vim null, não sei mais aonde recorrer, no salvar ja troquei action por actionListener e tudo, o mais engraçado é que ontem estava funcionando normalmente e do nada aconteceu isso. o pior é que nem mechi no metodo e no bean. está exatamente igual, era pra no minimo ele nao vir null.
xhtml do dialog.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:body>
<p:dialog id="MyDialog" resizable="false" widgetVar="dialog" modal="true" appendToBody="true" header="Informações do Orgão"
dynamic="true" draggable="false" >
<h:form id="addOrgao">
<p:growl id="notify" showDetail="true" sticky="true"/>
<h:inputHidden value="#{orgBean.orgao.codigo}" />
<!-- <fieldset><legend>Informações do Orgão</legend> -->
<h:panelGrid columns="1">
<h:outputLabel value="*Nome:"/>
<h:inputText value="#{orgBean.orgao.nome}" size="100" required="true" requiredMessage="Nome Obrigatorio"
validatorMessage="Nome deve conter no minimo '10' caracteres.">
<f:validateLength minimum="10" />
</h:inputText>
</h:panelGrid>
<h:panelGrid columns="4">
<h:panelGrid columns="1">
<h:outputLabel value="Tipo do Orgão:"/>
<h:selectOneMenu id="tipoOrgao" value="#{orgBean.orgao.tipo}" converter="tipoOrgaoConverter" style="width: 140px;" >
<f:selectItem itemLabel="Selecione" />
<f:selectItems var="tipoOrgao" value="#{orgBean.listarTipoOrgao}" itemLabel="#{tipoOrgao.descricao}" itemValue="#{tipoOrgao}" />
</h:selectOneMenu>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*CNPJ:"/>
<p:inputMask id="cnpj" value="#{orgBean.orgao.cnpj}" mask="99.999.999/9999-99" size="25" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Codigo Sagres:"/>
<p:inputText value="#{orgBean.orgao.codigoSagres}" size="25" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="Decreto:"/>
<p:inputText value="#{orgBean.orgao.decreto}" cols="40" rows="5" />
</h:panelGrid>
</h:panelGrid>
<!-- A partir daqui é o endereço -->
<h:panelGrid columns="3">
<h:panelGrid columns="1">
<h:outputLabel value="*Endereço:"/>
<p:inputText value="#{orgBean.orgao.endereco.logradouro}" size="50" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Bairro:"/>
<p:inputText value="#{orgBean.orgao.endereco.bairro}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Numero:"/>
<p:inputText value="#{orgBean.orgao.endereco.numero}" size="5" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="4">
<h:panelGrid columns="1">
<h:outputLabel value="Complemento:"/>
<p:inputText value="#{orgBean.orgao.endereco.complemento}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*CEP:"/>
<p:inputText value="#{orgBean.orgao.endereco.cep}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*UF:"/>
<h:selectOneMenu id="estado" value="#{orgBean.orgao.endereco.cidade.estado}"
converter="estadoConverter">
<f:selectItems value="#{orgBean.selecionarEstado}" />
<p:ajax update="cidade" listener="#{orgBean.carregarCidades}" />
</h:selectOneMenu>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Cidade:"/>
<h:selectOneMenu id="cidade" value="#{orgBean.orgao.endereco.cidade}" converter="cidadeConverter">
<f:selectItem itemLabel="Selecione a cidade"/>
<f:selectItems value="#{orgBean.selecionarCidade}" var="cidade" itemLabel="#{cidade.nome}" itemValue="#{cidade}" />
</h:selectOneMenu>
</h:panelGrid>
</h:panelGrid>
<!-- Aqui se encontra o Contato -->
<h:panelGrid columns="3">
<h:panelGrid columns="1">
<h:outputLabel value="*Telefone:"/>
<p:inputText value="#{orgBean.orgao.contato.telefone}" size="20" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="Fax:"/>
<p:inputText value="#{orgBean.orgao.contato.fax}" size="20" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="E-Mail:"/>
<p:inputText value="#{orgBean.orgao.contato.email}" size="40" />
</h:panelGrid>
</h:panelGrid>
<p:dataTable id="listaOrgao" rows="7" style="margin-top: 10px;" value="#{orgBean.lista}" var="orgao"
emptyMessage="Não possui Orgãos" rowKey="#{orgao.codigo}" selection="#{orgBean.orgao}" selectionMode="single">
<f:facet name="header">Orgãos Cadastrados</f:facet>
<p:ajax event="rowSelect" update=":addOrgao" />
<p:column headerText="Orgãos">
#{orgao.nome}
</p:column>
</p:dataTable>
<p:separator/>
<p:commandButton value="Salvar" action="#{orgBean.salvar}"/>
<!-- </fieldset> -->
</h:form>
</p:dialog>
</h:body>
</f:view>
</html>
xhtml do meu bean.
package br.com.idea.dilicita.beans;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;
import org.primefaces.event.SelectEvent;
import br.com.idea.dilicita.exception.DilicitaException;
import br.com.idea.dilicita.facade.DilicitaFacade;
import br.com.idea.dilicita.model.Cidade;
import br.com.idea.dilicita.model.Estado;
import br.com.idea.dilicita.model.Orgao;
import br.com.idea.dilicita.model.TipoOrgao;
@ManagedBean(name="orgBean")
@ViewScoped
public class OrgBean {
private Orgao orgao = new Orgao();
private Estado estado = new Estado();
private List<Orgao> lista;
private List<TipoOrgao> listarTipoOrgao = null;
private List<Estado> selecionarEstado;
private List<Cidade> selecionarCidade;
private Orgao orgaoSelected = new Orgao();
public void salvar() {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
orgaoRN.salvarOrgao(orgao);
} catch (DilicitaException e) {
e.printStackTrace();
}
}
public void excluir() {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
orgaoRN.excluirOrgao(orgao);
this.lista = null;
} catch (DilicitaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<Orgao> getLista() {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
this.lista = orgaoRN.listarOrgaos();
} catch (DilicitaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return lista;
}
public Orgao getOrgao() {
return this.orgao;
}
public void setOrgao(Orgao orgao) {
this.orgao = orgao;
}
public List<TipoOrgao> getListarTipoOrgao() {
if(listarTipoOrgao == null) {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
this.listarTipoOrgao = orgaoRN.listarTiposOrgaos();
} catch (DilicitaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return listarTipoOrgao;
}
public List<SelectItem> getSelecionarEstado() {
DilicitaFacade orgaoRN = new DilicitaFacade();
List<SelectItem> itens = new ArrayList<SelectItem>();
itens.add(new SelectItem(null, "Selecione o estado"));
try {
for (Estado est : orgaoRN.listarEstados()) {
SelectItem se = new SelectItem();
se.setValue(est);
se.setLabel(est.getUF());
itens.add(se);
}
} catch (DilicitaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return itens;
}
public List<Cidade> getSelecionarCidade() {
return this.selecionarCidade;
}
public void carregarCidades() {
DilicitaFacade orgaoRN = new DilicitaFacade();
Long n = this.orgao.getEndereco().getCidade().getEstado().getCodigo();
int idEstado = Integer.valueOf(n.toString());
try {
this.selecionarCidade = orgaoRN.listarCidades(idEstado);
} catch (DilicitaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void clean() {
this.orgao = new Orgao();
}
public Estado getEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
public Orgao getOrgaoSelected() {
return orgaoSelected;
}
public void setOrgaoSelected(Orgao orgaoSelected) {
this.orgaoSelected = orgaoSelected;
}
}