Olá hoje falaremos sobre escopos do ManagedBean que é um controlador que se comporta como uma classe Java Beans delegando funções a camada View. A principal responsabilidade do ManagedBean é fazer a ligação entre Front e Back-End por meio da EL – Expression Language do JSF – JavaServer Faces.
Neste artigo falaremos sobre um conceito muito importante no JSF que são os escopos. É a partir do entendimento desse escopo que você poderá definir como implementar uma solução e/ou como corrigir problemas que podem surgir em uma rotina já implementada.
DEFININDO ESCOPO
Escopo é um substantivo masculino que significa delimitação das atividades; descrição detalhada de um projeto; propósito. E por que conhecer o significado de escopo é importante? Porque entendendo o que significado de escopo, o termo se torna mais amigável quando aplicado ao contexto da programação.
ESCOPO DO MANAGED BEAN
O escopo do ManagedBean define um comportamento para telas e sistemas e eles podem ser definidos por meio de anotações do pacote javax.faces.bean, acima da declaração do ManagedBean. Observe alguns exemplos dessas anotações, @RequestScoped, @SessionScoped, @ApplicationScoped, @ViewScoped.
Cada funcionalidade do sistema funciona melhor dentro de um determinado escopo. Considere uma aplicação que entre suas funcionalidades armazena todas as informações referentes a um dado produto. E ainda, este sistema deve informar quando um produto já foi cadastro, evitando assim a duplicidade de dados. Dessa forma, esta solução exige a implementação das regras de negócio dentro de um escopo que atenda aos seus requisitos.
Assim, o objetivo do escopo do ManagedBean, descreve que cada escopo tem uma função específica e cada uma dessas funções resolve um tipo de problema. Esta é uma informação que parece óbvia. Entretanto, é mais comum do que você imagina que o desconhecimento ou o não completo entendimento deste importante conceito, implique em soluções não implementadas ou problemas não solucionados, utilizando o JSF.
COMO FUNCIONA
Quando referenciamos um ManagedBean via EL #{pessoaBean.nome}, o framework do JSF instanciará o objeto da classe do ManagedBean ou recuperará uma instância existente.
Todas essas instâncias possuem um ciclo de vida, e a definição deste tempo de vida depende de cada escopo usado no ManagedBean. Há casos em que é necessário a utilização de algum escopo de maior duração, que exigem por exemplo, o uso de uma session.
Para um melhor entendimento, em uma session escope todos os objetos e atributos vinculados ao ManagedBean, sobreviverão durante toda a sessão do usuário que é definida pelo vínculo do navegador do usuário com o servidor.
EM POUCAS PALAVRAS
É de extrema importância que você verdadeiramente compreenda escopos do ManagedBean. Este entendimento pode representar uma significativa economia de tempo no momento de escolher qual caminho seguir no decorrer da implementação de uma solução. Então estude e não avance com dúvidas.