|
|
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
|
|