Olá amigo.
Isso se dá ao fato de sua classe “Modelo” ou essa classe que acessa o banco de dados, não é uma classe serializável.
Basta adicionar algo como:
publicclassClienteimplementsSerializable{...}
A
apalmeira
Obrigado lessandronp!
Agora não aprece mais o erro, porém, não estou conseguindo usar o keepAlive. Quando faço a pesquisa o dataModel é populado, mas quando clico no botao para alterar os dados somem.
O MB está em escopo de request no faces-config e estou usando <a4j:keepAlive beanName=“departamentoMB” /> no XHML.
Provavelmente sumirão mesmo… O ideal seria utilizar o MB como session e o Bean como request.
Mas se quiser manter dessa forma tente fazer algo como:
Cria no MB um atributo do tipo:
private Departamento departamentoSelecionado;
getters and setters pra esse cara.
Nesse caso vc está setando o departamento selecionado na grid para o seu MB. Com isso no método alterar, vc passa o departamentoSelecionado.
Veja se isso te ajuda… Porque dessa forma vc consegue passar para o MB o cara q vc selecionou na grid e após alterar ele, o MB consegue
capturá-lo passando pro DataModel.
Abraços,
Lessandro
A
apalmeira
Obrigado lessandronp!
Mas é correto colocar o MB na sessão? Sempre ouvi dizer para colocar no resquest!
Hoje meu Bean esta dentro do MB, se eu colocar o MB na sessão, tudo ficara na sessao nao é?
lessandronp
Olha, cada um usa de uma forma diferente. Cada pessoa adota um padrão de desenvolvimento. Agora com o JSF 2.0 as coisas ficaram
mais “encorpadas”, pois os escopos de sessao, requisição, entre outros escopos possuem seu tempo de vida maior ou menor dependendo
do utilizado. Agora não necessariamente seu Bean terá escopo de sessão, afinal se vc der um “New” no seu Bean ele sempre será criado.
Quando instanciado o seu Bean se este foi declarado como Request, ao instanciá-lo também, independente do seu MB ser Session, seu Bean
será Request. A não ser que utilize “ManagedBean.Bean.nome” por exemplo.
Talvez o mais correto fosse na sua página JSF vc utilizar Bean.nome. Os actions dos seus botões, e acesso a alguma lista que não existe no seu
Bean, aí sim, vc acessará do MB.
Abs,
Lessandro