javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] Tipos Genéricos em ManagedBean do JSF 2.0

Subject: Re: [javasf] Tipos Genéricos em ManagedBean do JSF 2.0
From: Andrà Berenguel
Date: Sat, 16 Apr 2011 02:54:05 -0300
A soluç que o fláo postou é Template Method pattern.. um pattern muito ú.

Eu uso uma soluç um pouco diferente:

//Controller.java
public abstract class Controller<T> {
    ...
   private T modelo;
   Class<T> clazz;

   public Controller(Class<T> clazz)
   {
       this.clazz = clazz;
    }

public T getModelo() {
    if (modelo == null) {
       try {
        modelo = clazz.newInstance();
       } catch (Exception e) {
         }
    }
    return modelo;
   }
}

//PessoaController.java
public class PessoaController extends Controller<Pessoa> {

    public PessoaController () 
          super(Pessoa.class)
    }
}

--
Andréerenguel


2011/4/15 Flavio Cysne <flaviocysne@xxxxxxxxx>
Lindoéo,

    nãsei se entendi certo, mas vocêem uma propriedade no seu Controller chamada modelo e ela estáempre vindo nula? Se for, uma maneira de resolver isso éantes de retornar o modelo no médo get, vocêerificar se ele éulo e, caso seja, chamar um médo, que deveráer implementado pelas subclasses, que retorne uma instâia váda deste modelo. Tipo assim:

//Controller.java
...
private T modelo;
public T getModelo() {
    if (modelo == null) {
        modelo = newInstance();
    }
    return modelo;
}
...
protected abstract T newInstance();
...

//PessoaController.java
public class PessoaController extends Controller<Pessoa> {
...
protected Pessoa newInstance() {
    return new Pessoa();
}
...
}

Espero ter ajudado.
Fláo Cysne

Em 15 de abril de 2011 14:50, Lindoéo Láro <lindoelio@xxxxxxxxx> escreveu:

Olápessoal! Ao migrar minha aplicaç de JSF 1.2 para JSF 2.0 tenho
encontrado muitas dificuldades. Uma delas éuanto a utilizaç de
tipos "Generic", que uso muito para fazer reflexãe Superclasses
"Genécas", como DAO e Controller, por exemplo.
Para entenderem melhor o meu problema atual, vou explicar um pouco de
como façuso dessas classes genécas na minha aplicaç:

Tenho uma Superclasse que chamo carinhosamente de "Controller". Essa
superclasse faz reflexãcom base em um tipo Generic (Controller<T>) e
contéalguns médos protected para integraç com o banco de dados;
de forma que para obter as funcionalidades de controle para Inclusã
Alteraç, Exclusã Listagem simples e outras, basta extender essa
classe em uma subclasse, passando o tipo "T", que representa uma
classe de modelo, com mapeamentos Hibernate. A Superclasse DAO<E>
segue a mesma estrutura, sóe ao invédo Generic T uso o E.

Bom, vamos ao problema (que deve ser de resoluç muito simples e
causar risadas aos precoces gurus do JSF 2.0, rs). O objeto modelo
estáempre nulo quando vou utilizar na view (NullPointException), nãbr> importando qual o escopo estiver usando. Tentei usar a anotaç
@ManagedProperties, imaginando que poderia ser pela dependêia, mas
sem sucesso.
Alguétem ideia do que estou fazendo de errado?

Obrigado!

--
Vocêecebeu esta mensagem por que éembro do  Javasf
http://groups.google.com/group/javasf

Conheçtambéo Java Brazil: http://groups.google.com/group/thejavabrazil

--
Vocêecebeu esta mensagem por que éembro do Javasf
http://groups.google.com/group/javasf
 
Conheçtambéo Java Brazil: http://groups.google.com/group/thejavabrazil

--
Vocêecebeu esta mensagem por que éembro do Javasf
http://groups.google.com/group/javasf
 
Conheçtambéo Java Brazil: http://groups.google.com/group/thejavabrazil
<Prev in Thread] Current Thread [Next in Thread>