Você está aqui: JSF - Java Server Faces ::: Pacote javax.faces.context ::: Flash

Aprenda a usar a classe Flash em suas aplicações JSF

Quantidade de visualizações: 3072 vezes
Um objeto da classe Flash fornece formas de passar objetos temporários entre as views (visões) do usuário geradas pelo ciclo de vida do JSF. Em outras palavras, um objeto Flash pode ser preenchido em uma requisição e usada na próxima. Seu conceito foi obtido a partir do framework Ruby on Rails.

Veja sua posição na hierarquia de classes do Java Server Faces:

java.lang.Object
  extended by javax.faces.context.Flash
A classe Flash implementa a interface java.util.Map<java.lang.String,java.lang.Object>.

Um objeto Flash pode ser obtido por meio de uma chamada ao método getFlash() da classe ExternalContext. Veja um trecho de código no qual usamos um objeto Flash no método salvarLivro() de um controller JSF (marcado como @ManagedBean e @SessionScoped):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// é chamado a partir do botão Gravar da página cadastrarLivro.xhtml
// e, após salvar o livro na tabela do banco de dados
// redireciona para sucessoCadastrarLivro.xhtml
public String salvarLivro() throws Exception {
  LivroDAO dao = new LivroDAO();
  dao.gravarLivro(this.getLivro());
  // vamos obter um objeto da classe Flash
  // import javax.faces.context.ExternalContext;
  // import javax.faces.context.Flash;
  // import javax.faces.context.FacesContext;
  FacesContext context = FacesContext.getCurrentInstance();
  ExternalContext eContext = context.getExternalContext();
  Flash flash = eContext.getFlash();
  flash.put("aviso", "O livro foi cadastrado com sucesso.");
        
  return "/sucessoCadastrarLivro";
}

Note que as quatro linhas que usei para colocar a mensagem no Flash podem ser abreviadas para apenas uma. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

FacesContext.getCurrentInstance().getExternalContext().getFlash().put(
  "aviso", "O livro foi cadastrado com sucesso.");

Ao fazer isso nós dispensamos os imports javax.faces.context.ExternalContext e javax.faces.context.Flash (precisando manter apenas javax.faces.context.FacesContext).

Veja agora como exibir a mensagem do Flash na página sucessoCadastrarLivro.xhtml:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<h:body>
  <p><b><h:outputText value="#{flash.aviso}" /></b></p>
        
  <h:form>
     <h:commandLink action="#{livroController.novoLivro()}" 
       value="Cadastrar Novo Livro"/>
  </h:form>
</h:body>

Nas páginas JSF (JSP ou Facelets) um objeto Flash é referenciado pela variável flash.

Ao executar o método salvarLivro() e carregar a nova página, uma mensagem "O livro foi cadastrado com sucesso." será exibida. É importante observar que o conteúdo colocado em um objeto Flash é removido tão logo a nova requisição é concluída. Veja em dicas desta seção como manter o conteúdo do flash por mais de uma requisição.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de JSF - Java Server Faces

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 27 usuários muito felizes estudando em nosso site.