Por que eu devo ler este artigo:Formulários são uma forma fundamental de interação entre um usuário e a aplicação, sendo o seu domínio imprescindível para qualquer desenvolvedor web. Aqui falamos sobre como trabalhar com eles em aplicações Spring, utilizando para isso o Spring MVC e o Thymeleaf.

Nas aulas de HTML aprendemos que o navegador dispõe de mecanismos para que as informações preenchidas em um formulário sejam submetidas para um servidor. Enquanto isso, na programação com Java vemos que uma aplicação é composta por objetos que possuem propriedades em forma de getters/setters e que interagem entre si através desses e de outros métodos. Então, como conectar esses dois mundos? Respondemos a essa pergunta aqui com um exemplo prático de envio de formulário de cadastro.

Introdução

Nos artigos anteriores da matéria de Spring aprendemos como o Spring MVC consegue conectar as propriedades de um objeto aos inputs de um formulário através do Thymeleaf.

Com isso, quando o formulário é enviado recebemos no back-end um objeto que representa os dados fornecidos pelo usuário e que pode ser utilizado pela aplicação. Aqui veremos o que muda no controller e na view quando esse envio é feito via POST.

Relembrando o que aprendemos, em uma aplicação web Spring o Spring MVC está mais próximo do Java, fornecendo meios para escrevermos classes que representam os componentes do MVC, como models e controllers, enquanto o Thymeleaf consiste de uma linguagem de templates com a qual escrevemos as views da aplicação.

Assim, utilizando atributos do Thymeleaf em elementos, em lugar daqueles nativos do HTML, conectamos o front-end e back-end da aplicação.

Isso é algo semelhante ao que aprendemos nas aulas de HTML, onde criamos/enviamos formulários utilizando mecanismos já existentes. Contudo, aqui faremos isso sabendo que tais mecanismos estarão sob o controle do framework.

Na prática, cabe a nós entendermos quais dados um formulário pretende capturar, modelando cada um deles em um objeto.

A partir disso, usamos o Spring para expor os getters/setters desse objeto para a view, como vemos na Figura 1. Então, na view utilizamos o Thymeleaf sobre o HTML a fim de relacionar tais propriedades do objeto com os inputs no formulário. Com isso, quando ele for enviado um objeto devidamente preenchido com os dados fornecidos pelo usuário será entregue para o back-end

Conexão entre getters/setters e inputs
Figura 1. Conexão entre getters/setters e inputs

Neste artigo veremos esses três passos (criação de um formulário com o Thymeleaf, recebimento dos dados em um controller e apresentação deles em uma view) usando como cenário um formulário de cadastro.

Conhecendo o formulário de exemplo

Para estudar esses recursos do Spring MVC e do Thymeleaf usaremos como exemplo um formulário de cadastro.

A partir dele receberemos de um usuário o seu nome, data de nascimento, apelido, senha e a confirmação de concordância com os termos de uso. Com isso, será possível explorar como transformar inputs date em objetos Date, checkboxes em booleans e text em Strings.

Para isso precisaremos de duas views. A primeira (Figura 2) será utilizada como home, apresentando para o usuário o formulário de cadastro.

Ao serem enviados, os dados informados pelo usuário serão recebidos no controller da aplicação que fará a apresentação deles em uma segunda view (Figura 3).

Primeira view - Formulário de cadastro
Figura 2. Primeira view - Formulário de cadastro
Segundo view - Dados enviados pelo usuário
Figura 3. Segundo view - Dados enviados pelo usuário

Com isso aprenderemos:

  1. A criar uma view de formulário;
  2. Como receber os dados preenchidos pelo usuário no controller;
  3. E enviar os dados recebidos pelo controller para a segunda view.

Visto que este fluxo é o tema principal deste artigo, outros assuntos como validação de dados, por exemplo, serão abordados em um outro momento.

Estrutura do projeto

U ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo