Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida, como passar um objeto para ser carregado uma outra pagina?

Gostaria de saber como fazemos para passar um objeto para outra pagina, por exemplo se o formulario de cadastro estivesse separado da tabela. Como fazer o link de edit nesse caso?

3 respostas
solução!

Fala, Ricardo!

Você armazena os campos de uma página em um managedbean. Aí, dependendo do seu escopo, você pode ter esses dados por várias páginas, por uma requisição, por uma página, etc. Daí você pode editar, salvar, excluir, etc. Nesse curso que você tá fazendo, isso será visto nas próximas lições (na 9 tem o CRUD).

Bons estudos.

Abraço.

Obrigado, consegui fazer funcionar usando f:setPropertyActionListener mas tive que mudar o scopo do bean para @SessionScoped.

Existe algum problema ou cuidado adicional ao usar @SessionScoped?

Ricardo, o @SessionScoped dura a sessão inteira do usuário no navegador (enquanto não fechar, ela fica aberta, compartilhada entre abas, etc). Ela custa caro ao servidor de aplicação, fora o problema das abas. Quanto menor for seu escopo, melhor.

Se você precisa manter um atributo pra navegar entre duas (apenas duas) páginas, usa o @FlashScoped, ele vai servir para esse teu propósito.

Pra outras abordagens, você pode ler sobre o OpenSessionInView, que permite que você use o @ViewScoped (dura enquanto não mudar de tela), com ajax, resultando numa abordagem mais inteligente, com tráfego de dados reduzidos e uma interface mais próxima de uma aplicação desktop.

A sequência do menor escopo (preferível) para o maior:

  • @RequestScoped
  • @ViewScoped
  • @FlashScoped
  • @SessionScoped
  • @ApplicationScoped
  • Existem outras, porém pouco utilizadas:

  • @NoneScoped
  • @CustomScoped
  • Quer mergulhar em tecnologia e aprendizagem?

    Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software