JSF Mini Livro – Dicas, conceitos e boas práticas

93

Posted on September 2, 2012 by

Share it now!

Flash Scope

Em nossa aplicação, por diversas situações, precisamos programaticamente redirecionar o usuário através do método HttpServletResponse.sendRedirect. Ao utilizar o método sendRedirect uma nova requisição é feita e os dados do request original serão perdidos. A imagem abaixo ilustra melhor essa situação:

Não é boa prática utilizar a sessão usuário (HttpSession) para armazenar objetos/informações, atributos ou valores que seriam perdidos na hora do redirect. Lembre-se que para casa usuário que utiliza o HttpSession é mais memória do servidor que será utilizada.

O JSF 2.0 vem com um componente muito útil chamado Flash Scope. Esse componente irá manter o objeto até o fim do redirect. Ele funciona como se fosse um Map<String, Objetct> que irá manter o objeto temporariamente na sessão, e que após o objeto ser utilizado sua referência é eliminada. O código abaixo mostra como colocar um objeto dentro do Flash:

// import da classe
importcom.sun.faces.context.flash.ELFlash;

// utilizar antes do redirect
ELFlash.getFlash().put("carro", objeto);

E para utilizar o valor na página após o redirect basta utilizar através de EL: “#{flash.carro.peso}”. Automaticamente a referência ao objeto carro do código acima será removida da memória após ser utilizado na exibição da página.

Outro recurso interessante é manter o objeto por mais tempo na memória do servidor; para utilizar esse recurso basta acessar o objeto do seguinte modo: “#{flash.keep.carro.peso}”. Basta adicionar a palavra “keep” toda vez que a aplicação for acessar o objeto dentro do Flash, pois desse modo a referência desse objeto não será removida (para maiores informações, clique aqui).

Response to JSF Mini Livro – Dicas, conceitos e boas práticas

1 4 5 6
    • uaihebert Post author

      João, boa tarde.

      Eu não tenho o material em PDF, dá muito trabalho já criar o post e seria tempo d+ em criar o PDF.

      Obrigado pela visita.

1 4 5 6

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *