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.)

6 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
  4. Bastante interessante suas colocações.

    ResponderExcluir
  5. Oi boa tarde desbloqueio todos os canais fechado de Tv por assinatura de qualquer lugar do Brasil premier combate telecine HBO pfc fox e canais adultos e também reduzimos o valor da sua fatura mais informações sobre o assunto chama no Zap 11980488506

    ResponderExcluir

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