|
|
Fávio, o clienteCMS não está nulo, só o objeto entidade mesmo (que vem
do Controller abstrato). Com RequestScoped não muda absolutamente
nada.
No momento, não tenho como olhar qual o pacote, porque não estou com o
projeto aqui; mas qual a diferença na implementação da ViewScoped do
pacote javax.enterprise e a do javax.faces.bean?
Agradeço.
On Apr 18, 8:53 am, Flavio Cysne <flaviocy...@xxxxxxxxx> wrote:
> Lindoélio,
>
> verifique se, na página, o próprio clienteCMS está nulo. O ViewScoped
> que está usando é do pacote javax.enterprise ou do javax.faces.bean ? Já
> tentou com o RequestScoped ?
>
> Atenciosamente,
> Flávio Cysne
>
> Em 17 de abril de 2011 21:33, Lindoélio Lázaro <lindoe...@xxxxxxxxx>escreveu:
>
>
>
>
>
>
>
> > Caros, ainda não consegui. Implementei o newInstance no meu Controller
> > abstrato, mas continua na mesma.
>
> > Segue trechos do código para entenderemo melhor meu problema...
> > =======================================
> > Classe Controller...
> > ...
> > private T entidade;
> > private DAO<T> dao;
> > private DataModel dataModel;
> > ...
> > public T getEntidade() {
> > if (entidade == null) {
> > entidade = newInstance();
> > }
> > return entidade;
> > }
>
> > public void setEntidade(T entidade) {
> > this.entidade = entidade;
> > }
> > =======================================
> > Classe ClienteController...
> > ...
> > @ManagedBean(name="clienteCMS")
> > @ViewScoped
> > public class ClienteController extends Controller<Cliente> {
> > ...
> > public ClienteController() {
> > super.setDao(new ClienteDAO());
> > }
> > =======================================
> > Página *.xhtml de cadastro do cliente...
> > ...
> > <h:inputText id="nomeCliente" value="#{clienteCMS.entidade.nome}" />
> > =======================================
>
> > Isso com JSF 1.2 funciona perfeitamente! Tenho uma aplicação em
> > produção com essa arquitetura em JSF 1.2.
> > No JSF 2.0 esse objeto "entidade" está sempre vazio. Já não sei mais o
> > que fazer.
>
> > Agradeço qualquer ajuda!
>
> > On Apr 16, 2:54 am, André Berenguel <andre.bereng...@xxxxxxxxx> wrote:
> > > A solução que o flávio postou é o Template Method pattern.. um pattern
> > muito
> > > útil..
>
> > > Eu uso uma solução 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é Berenguel
>
> > > 2011/4/15 Flavio Cysne <flaviocy...@xxxxxxxxx>
>
> > > > Lindoélio,
>
> > > > não sei se entendi certo, mas você tem uma propriedade no seu
> > > > Controller chamada modelo e ela está sempre vindo nula? Se for, uma
> > maneira
> > > > de resolver isso é, antes de retornar o modelo no método get, você
> > verificar
> > > > se ele é nulo e, caso seja, chamar um método, que deverá ser
> > implementado
> > > > pelas subclasses, que retorne uma instância válida 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ávio Cysne
>
> > > > Em 15 de abril de 2011 14:50, Lindoélio Lázaro <lindoe...@xxxxxxxxx
> > >escreveu:
>
> > > > Olá, pessoal! Ao migrar minha aplicação de JSF 1.2 para JSF 2.0 tenho
> > > >> encontrado muitas dificuldades. Uma delas é quanto a utilização de
> > > >> tipos "Generic", que uso muito para fazer reflexão e Superclasses
> > > >> "Genéricas", como DAO e Controller, por exemplo.
> > > >> Para entenderem melhor o meu problema atual, vou explicar um pouco de
> > > >> como faço uso dessas classes genéricas na minha aplicação:
>
> > > >> Tenho uma Superclasse que chamo carinhosamente de "Controller". Essa
> > > >> superclasse faz reflexão com base em um tipo Generic (Controller<T>) e
> > > >> contém alguns métodos protected para integração com o banco de dados;
> > > >> de forma que para obter as funcionalidades de controle para Inclusão,
> > > >> Alteração, Exclusão, 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ó que ao invés do Generic T uso o E.
>
> > > >> Bom, vamos ao problema (que deve ser de resolução muito simples e
> > > >> causar risadas aos precoces gurus do JSF 2.0, rs). O objeto modelo
> > > >> está sempre nulo quando vou utilizar na view (NullPointException), não
> > > >> importando qual o escopo estiver usando. Tentei usar a anotação
> > > >> @ManagedProperties, imaginando que poderia ser pela dependência, mas
> > > >> sem sucesso.
> > > >> Alguém tem ideia do que estou fazendo de errado?
>
> > > >> Obrigado!
>
> > > >> --
> > > >> Você recebeu esta mensagem por que é membro do Javasf
> > > >>http://groups.google.com/group/javasf
>
> > > >> Conheça também o Java Brazil:
> > > >>http://groups.google.com/group/thejavabrazil
>
> > > > --
> > > > Você recebeu esta mensagem por que é membro do Javasf
> > > >http://groups.google.com/group/javasf
>
> > > > Conheça também o Java Brazil:
> >http://groups.google.com/group/thejavabrazil
>
> > --
> > Você recebeu esta mensagem por que é membro do Javasf
> >http://groups.google.com/group/javasf
>
> > Conheça também o Java Brazil:http://groups.google.com/group/thejavabrazil
--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
|
|