Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 2 da Aula 2 - O padrão MVC

Neste exercício a resposta é:

Na camada de Controller, ele é quem controla as entradas e dispara as requisições internas para os controllers (classes com @Controller) e suas views.

Porém durante o cursos não vi isto claramente, sobre em que camada o MVC trabalha de fato e como. Será que passou batido esta informação por mim ou há um documento que eu deveria ter lido sobre o Spring?

Obrigado

3 respostas

Olá Joacir.

Não entendi a parte da sua pergunta que diz "sobre em que camada o MVC trabalha de fato e como". O MVC não trabalha nas camadas, ele é as camadas. Imagino que você saiba disso, só precisei ler umas 2 vezes pra entender o que você quis dizer (kk). Por não conhecer o Spring (conheço JSF), vou falar o que sei através dos conceitos, não com exemplos de código.

O controller é responsável por pegar as variáveis da View (um formulário qualquer), que ao ser submetido, quem recebe os valores do form é o controller. Nele serão feitos os tratamentos, conversões validações definidas pelas regras de negócio do sistema. Ex: ao inserir o valor de uma data por exemplo, você deseja converter para o formato Date (em forms enviados a partir do browser, tudo vai como string para a aplicação). Após feitas as validações e conversões, os valores são enviados para as classes responsáveis por persisti-los no banco de dados (um DAO, por exemplo).

A idéia do MVC como você ja deve saber, é separar estas responsabilidades: - View (classes de interface); - Controller (regras de negócio); - Model (tudo que envolva banco de dados).

Espero ter lhe auxiliado de alguma forma.

Abraços.

solução!

Olá Joacir, o MVC são as camadas. Quando trabalhamos com Spring MVC quando usuário faz um request ele cai no Controller do Spring, esse controller do Spring não é uma classe anotada com @Controller, e isso cria uma certa confusão.

Então após o controller do Spring receber as requisições ele vai buscar pelo sua classe anotada com @Controller, essa sua classe vai fazer a sua regra de negocio, chamar classes de modelo, realizar operações, conversar com o banco e etc, após isso ela retorna uma string que vai para o controller do Spring e ele então chama uma view e devolve a response.

É preciso entender que o C do MVC, fica agora sob controle do Spring, você por sua vez usa @Controller para que ele possa chamar a sua classe, geralmente esse Controller do Spring é chamado de Front-Controller para facilitar o entedimento.

Ficou claro ?

Valeu, Pedro. Ficou muito claro sim. Provavelmente a confusão está no tal do Controller do Spring mesmo.

Valeu.