SessionScoped e formulários de cadastro e edição. Qual a abordagem de vocês?
5 respostas
brccosta
Olá pessoal,
Um determinado ManagedBean é do tipo SessionScoped. Neste ManagedBen gerencia um objeto que para o qual exite um formulário web de cadastro e outra página web que faz a listagem dos objetos cadastrados. Nesta última página, é possível selecionar um objeto (gerenciado pelo ManagedBean SessionScoped) para edição, redirecionando para o formulário de cadastro. Porém, depois disso, se clicarmos diretamente no formulário de cadastro, os dados do objeto que havia selecionado antes continuam lá (claro, devido a ele permanecer na sessão).
Não usar SessionScoped para isso, mas sim ViewScoped ou ConversationScoped (para CDI).
brccosta
Sim, foi minha primeira abordagem. Porém, usando ViewScoped, se o usuário pressionar F5 ele perderá os dados. Uma saída: colocar na sessão, porém cai no primeiro problema.
Hebert_Coelho
brccosta:
Sim, foi minha primeira abordagem. Porém, usando ViewScoped, se o usuário pressionar F5 ele perderá os dados. Uma saída: colocar na sessão, porém cai no primeiro problema.
Se o problema é esse, faça uma persistencia temporária dos dados no DB.
SessionScoped não é performático para cadastros.
brccosta
Obrigado pelas respostas Hebert.
Pensando um pouco eu poderia colocar um controle no ManagedBean: se o comando para a página de cadastro viesse de uma página requisitando o NOVO cadastro, eu poderia limpar a sessão. O que acha desta solução?
Hebert_Coelho
brccosta:
Obrigado pelas respostas Hebert.
Pensando um pouco eu poderia colocar um controle no ManagedBean: se o comando para a página de cadastro viesse de uma página requisitando o NOVO cadastro, eu poderia limpar a sessão. O que acha desta solução?