O padrão MVC segundo o JSF
Autor: Samuel Vinícius | Publicado: 2012-12-17T13:12:00-08:00



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&nbsp;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.








O que é JSF?

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

Desenvolvido pela&nbsp;&nbsp;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&nbsp;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&nbsp;Servlet&nbsp;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:
•&nbsp;entidades e regras de negócio
• Objetos gerais da aplicação (dados, etc.)

<!--

Deseja aprofundar no assunto? Recomendo os seguintes links:




http://www.guj.com.br/java/72237-jsf-x-mvc&nbsp;( importante)
http://blog.pucp.edu.pe/item/4825/model-view-controler-jsf
imagem&nbsp;http://download.ultradownloads.com.br/wallpaper/169119_Papel-de-Parede-Quebra-cabeca_1600x1200.jpg
-->