Desculpe, seu navegador não suporta JavaScript! Casa Open: O padrão MVC segundo o JSF

O padrão MVC segundo o JSF

O que MVC?

O padrão MVC, de modo geral, divide uma aplicação em três camadas: modelo, visão e controle. A visão é responsável por apresentar a interface ao usuário. O modelo, pela representação dos objetos do negócio e fornecimento de acesso aos dados do negócio. E o controle define o comportamento da aplicação interpretando as ações de modo a realizar as devidas chamadas ao modelo. De modo simplificado, é dito que o controle fornece uma ligação entre visualização e modelo.



Esse padrão contribui para uma melhor separação de tarefas em uma equipe de desenvolvedores. Pois, tendo a aplicação separada por camadas, é mais fácil direcionar pessoas com habilidades diferentes para se concentrarem em partes diferentes do código.

Veja o diagrama abaixo que demostra a relação entre modelo, visão e controle onde as linhas sólidas indicam associação direta e as tracejadas indicam associação indireta.

Diagrama do modelo MVC



O que é JSF?

O JavaServer Faces (JSF), é uma especificação do framework MVC Java padrão que tem como principal objetivo simplificar a construção de componentes de interface gráfica para aplicações web.

Desenvolvido pela  Java Community Process (JCP), tem como uma de suas características mais relevantes a presença do modelo de componentes, semelhante ao que acontece no desenvolvimento Desktop. Essa orientação tende a facilitar o reuso pois, além dos vários componentes já existentes, é possível criar novos componentes.

Outras características marcantes são a existência de validadores e conversores de dados (facilitando a manipulação de tais), navegabilidade entre páginas oferecida por arquivos de configuração, suporte a internacionalização, entre outras.


MVC no JSF

No JavaServer Faces, o controle fica por conta de um servlet chamado Faces Servlet, por arquivos de configuração (ex.: faces-config.xml), pelos Backing Beans e pelos validadores e conversores. O Faces Servlet se designa a receber requisições, encaminhá-las ao modelo e enviar as respectivas repostas. Os arquivos de configuração são responsáveis por definirem a navegação entre páginas e o mapeamento de ações. Já os validadores e conversores permitem um maior controle sobre os dados que serão enviados. Importante ressaltar que, mesmo sendo referenciados nas páginas, os conversores e validadores fazem parte do processamento de eventos, logo também fazem parte do controlador e não da visão.

O modelo é constituído por classes de entidade e de negócio, que por sua vez, recebem dados da camada de visualização e executam regras pertinentes ao negócio.

Já a visualização, remete ao que o usuário vê, ou seja: a interface - páginas JSP e kits renderizadores (HTML, WML, XML, etc.). Mas, como o JSF se utiliza de componentes, pode se dizer que esta é composta por uma hierarquia de componentes organizados.

De modo simplificado, o MVC em aplicações web é distribuído da seguinte forma:

Visão:
• Componentes UI em páginas JSP/XHTML
• Kits renderizadores (HTML, WML, XML, etc.)

Controlador:
• Faces Servlet (Front Controller)
• Backing Bean (Page Controller ou Modelo)

Modelo:
• entidades e regras de negócio
• Objetos gerais da aplicação (dados, etc.)

5 comentários:

  1. Gostei bastante, eu mesmo estava com dificuldade para separar o que faz parte de cada camada.
    Bom em outros lugares, vi citações de uma outra camada a "P" de persistência.
    Valeu.

    ResponderExcluir
  2. A visão sobre JSF e MVC que você tem está correta, porém, MVC e camadas são coisas totalmente diferentes.

    ResponderExcluir
  3. O artigo foi muito útil, era exatamente o que eu estava procurando. Obrigada.

    ResponderExcluir

Casa Open | by Samuel Vinícius, Belo Horizonte - MG. Powered by Blogger