Fazendo Cast em JSF 2

Bom, tenho uma classe Controller Abstrata que implementa os CRUD’s : criar, alterar, excluir, findAll, findById.

Como ela é abstrata e não sei qual JavaBean utilizará ela, eu optei por sempre trabalhar com OBJECT ( o tipo mais genérico), ou seja, quando for chamar a action “findById” ele retorna um Object, e quando chamar o findAll retrona uma lista de Objects.

Lá no JSF 2 eu sei que devo fazer: {pessoaController.findById.nome}

Porém o findById retorna um Object e não um “Pessoa”, tem como fazer um cast tipo: {((Pessoa)pessoaController.findByid).nome} ?

Mas você está usando um ManagedBean genérico?
Eu estenderia o abstrato em quantos beans fossem necessários, para ter os dados o mais limpo possível nas xhtmls.
Assim, independente de ter um Object retornado do método da superclasse, teria uma subclasse especialista para disponibilizar a informação para a view.

Sim, estou utilizando uma Classe Genérica que fará o CRUD e todos os actions padrões, para não ter que ficar implementando milhares de linhas de códigos iguais.

Bom, se eu estender a action “cadastrar” do ManageBean genérico apenas para retornar um tipo especifico, não tem muita lógica eu criar esse ManageBean Genérico.

Exemplo:

ManageBean Genérico

public abstract class BasicManageBean
{

   Object beanInstance;

  //Injetado via Spring
   BasicDAO dao;

   public Object getObject(){
        return Object;
   }

   public void setObject(Object beanInstance){
     this.beanInstance = beanInstance;
  }

  public List getListar(){
     return dao.list();
  }
   
}

ManageBean Pessoa

public class PessoaManageBean extends BasicManageBean
{
  
  //Aqui não terá nada porque já está tudo pronto. 
   
}

No spring eu injeto o Dao do PessoaDAOImpl no PessoaManagedBean

Resolvido já , pode fechar esse tópico rsrs

Como você resolveu?

com a dica do amigo drsmachado?

posta aí.

Na verdade eu resolvi adotando uma outra estratégia:

Criei um DAO Genérico que realiza o CRUD diretamente como o Hibernate. Depois criei uma interface BasicBO, e todos os meus outros BO (PessoaBOImpl, LivroBOImpl) implementam essa interface.

Posta aí um exemplo estou curioso.

Valeu.

Assim que chegar em casa eu posto

ok agurdo.

Amigo ainda não tive tempo de enviar o código fonte completo, mas lhe adianto que criei um DAO Genérico com modelo neste link: http://wehavescience.com/2013/02/24/criando-um-dao-generico-com-hibernate/

Siga-o e terá o mesmo resultado que eu.