Estou com problemas no converter do JSF, sempre retorna null
Converter Projeto:
@FacesConverter(“projetoConverter”)
public class ProjetoConverter implements Converter {
@Override
public Object getAsObject(FacesContext faces, UIComponent component, String valor) {
System.out.println(valor);
try {
Long codigo = Long.parseLong(valor);
ProjetoDAO projetoDAO = new ProjetoDAO();
Projeto projeto = projetoDAO.buscarPorCodigo(codigo);
System.out.println(projeto);
return projeto;
} catch (RuntimeException ex) {
return null;
}
}
@Override
public String getAsString(FacesContext faces, UIComponent component, Object objeto) {
if (!objeto.equals("")) {
System.out.println(objeto);
try {
Projeto projeto = (Projeto) objeto;
Long codigo = projeto.getPro_codigo();
System.out.println(codigo);
return codigo.toString();
} catch (RuntimeException ex) {
return null;
}
}
return "";
}
}
EmpresaConverter
@FacesConverter(“empresaConverter”)
public class EmpresaConverter implements Converter {
@Override
public Object getAsObject(FacesContext faces, UIComponent component, String valor) {
System.out.println(valor);
try {
Long codigo = Long.parseLong(valor);
EmpresaDAO empresaDAO = new EmpresaDAO();
Empresa empresa = empresaDAO.buscarPorCodigo(codigo);
System.out.println(empresa);
return empresa;
} catch (RuntimeException ex) {
return null;
}
}
@Override
public String getAsString(FacesContext faces, UIComponent component, Object objeto) {
System.out.println(objeto);
try {
Empresa empresa = (Empresa) objeto;
Long codigo = empresa.getCodigo();
System.out.println(codigo.toString());
return codigo.toString();
} catch (RuntimeException ex) {
return null;
}
}
}
ProjetoDAO
@SuppressWarnings(“unchecked”)
public List listarProjeto() {
// Cria uma nova sess�o
Session sessao = HibernateUtil.getSessionFactory().openSession();
List projeto = null;
try {
// Executa query de consulta
Query consulta = sessao.getNamedQuery("Projeto.listarProjeto");
// Cria uma lista com os funcion�rios
projeto = consulta.list();
} catch (RuntimeException ex) {
throw ex;
} finally {
// Fecha a sess�o
sessao.close();
}
return projeto;
}
EmpresaDAO
@SuppressWarnings(“unchecked”)
public List listarEmpresa() {
// Cria uma nova sess�o
Session sessao = HibernateUtil.getSessionFactory().openSession();
List empresa = null;
try {
// Executa query de consulta
Query consulta = sessao.getNamedQuery("Empresa.listarEmpresa");
// Cria uma lista com os funcion�rios
empresa = consulta.list();
} catch (RuntimeException ex) {
throw ex;
} finally {
// Fecha a sess�o
sessao.close();
}
return empresa;
}
ProjetoBean
public List getDepartamentoselect() {
if(Departamentoselect == null){
Departamentoselect = new ArrayList<SelectItem>();
EmpresaDAO empresaDAO = new EmpresaDAO();
List<Empresa> listaEmpresa = empresaDAO.listarEmpresa();
if(listaEmpresa != null && !listaEmpresa.isEmpty()){
SelectItem item;
for (Empresa empresaLista : listaEmpresa) {
item = new SelectItem(empresaLista, empresaLista.getDepartamento());
Departamentoselect.add(item);
}
}
}
return Departamentoselect;
}
EmpresaBean
public List getDepartamentoselect() {
if (Departamentoselect == null) {
Departamentoselect = new ArrayList<SelectItem>();
EmpresaDAO empresaDAO = new EmpresaDAO();
List<Empresa> listaEmpresa = empresaDAO.listarEmpresa();
if (listaEmpresa != null && !listaEmpresa.isEmpty()) {
SelectItem item;
for (Empresa empresaLista : listaEmpresa) {
item = new SelectItem(empresaLista, empresaLista.getDepartamento());
Departamentoselect.add(item);
}
}
}
return Departamentoselect;
}
XHTML:
<p:outputLabel class="lt" value="Projeto:" /> <p:selectOneMenu value="#{usuarioBean.projeto.pro_projeto}" converter="projetoConverter"> <f:selectItem itemLabel="Selecione o projeto" itemValue="" /> <f:selectItems value="#{projetoBean.projetoselect}" /> </p:selectOneMenu> <p:outputLabel class="lt" value="Superior Imediato:" /> <p:selectOneMenu value="#{projetoBean.projetoSelecionado}"> <f:selectItem itemLabel="Selecione o superior" itemValue="" /> <f:selectItems value="#{projetoBean.imediatoselect}" /> </p:selectOneMenu>
Mensagem de erro:
Conversion Error setting value 'Projeto [pro_codigo=1, pro_tipo=Interno, pro_projeto=xxxx, pro_superiorImediato=xxxxxx xxxxxxxxxx]' for 'null Converter'.