[RESOLVIDO]Erro no converter (JSF)

2 respostas
java
M

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 sesso

Session sessao = HibernateUtil.getSessionFactory().openSession();

List projeto = null;
try {
		// Executa query de consulta
		Query consulta = sessao.getNamedQuery("Projeto.listarProjeto");
		// Cria uma lista com os funcionrios
		projeto = consulta.list();
	} catch (RuntimeException ex) {
		throw ex;
	} finally {
		// Fecha a sesso
		sessao.close();
	}
	return projeto;
}

EmpresaDAO

@SuppressWarnings(unchecked)

public List listarEmpresa() {

// Cria uma nova sesso

Session sessao = HibernateUtil.getSessionFactory().openSession();

List empresa = null;
try {
		// Executa query de consulta
		Query consulta = sessao.getNamedQuery("Empresa.listarEmpresa");
		// Cria uma lista com os funcionrios
		empresa = consulta.list();
	} catch (RuntimeException ex) {
		throw ex;
	} finally {
		// Fecha a sesso
		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'.

2 Respostas

M

Anote seu converter com
@FacesConverter(value = “NomeDoConverter”)

No XHTML:
<f:selectItems value="#{projetoBean.projetoselect}" var="projeto" itemLabel="#{projeto.atributo}" itemValue="#{projeto}" />

Lembrando que é importante ter implementado o equals e hashCode nos seus objetos. Teste isso e ve se corrige

M

Deu certo. Obrigado

Criado 5 de maio de 2016
Ultima resposta 5 de mai. de 2016
Respostas 2
Participantes 2