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

97

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
  1. Guerino Rodella

    Muito bom!
    O que me deixou com dúvida foi esse arquivo, “faces-config.xml”. Meu projeto não conta com este arquivo. Seria o web.xml? OBS: Estou desenvolvendo em JSF 2.2

    Outra coisa, se eu for trabalhar com vários idiomas, terei vários arquivos um para cada idioma. Como ficaria o EL acessando diferentes arquivos?

    • uaihebert Post author

      Guerino, boa noite.

      Primeiro, me perde a demora em responder. Estou muito pegado no trabalho, para você ter idéia, estou te respondendo dele enquanto um deploy não termina.

      Esse arquivo não é mais obrigatório nas versões mais novas do JSF, por isso que seu projeto não tem.

      Quando você for usar com muitas linguagens sua EL continuará do mesmo modo. Você pode adicionar quantos arquivos quiser, isso nunca influenciará sua EL.

      Espero ter ajudado, obrigado pela visita.

  2. Luciana

    Oi, estou começando agora com JSF e achar um material legal não é fácil. Mas sua iniciativa é ótima , ta me ajudando bastante. Obrigada.

    • uaihebert Post author

      Luciana, boa noite.

      Primeiro, me perde a demora em responder. Estou muito pegado no trabalho, para você ter idéia, estou te respondendo dele enquanto um deploy não termina.

      Obrigado pelo apoio, fico feliz em saber que estou ajudando. (:

    • 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 *