JSR 303 Bean validator e Hibernate validator Parte 1 Como visto no post anterior utilizar bean validador nao e nenhum grande misterio, agora chega de console e vou mostrar como utilizar em algo mais concreto, como um formulario HTML e Spring.Recomendo que ja conheca o basico do Spring, pois nao vou entrar nos detalhes do framework, apenas na parte de validacaoDependenciasSpringHibernate validator Vamos comecar criando a entidade como no post anteriorpackage br.com.cristiano;import javax.validation.constraints.NotNull;import javax.validation.constraints.Size;import org.hibernate.validator.constraints.Email;public class Cliente { private String nome; private String email; @Size(min=5, message="Nome deve ter mais que 5 caracteres") @NotNull(message="Nome nao pode ser nulo") public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Email(message="Email invalido") public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }Ate ai nada como, isso ja foi mostrado e explicado no post anterior, agora vamos para a parte do Spring criando o Controllerpackage br.com.cristiano;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class ClienteController { @RequestMapping("formulario") public String form(){ return "formulario"; } @RequestMapping("adicionaCliente") public String adicionar(@Valid Cliente cliente, BindingResult result){ if(result.hasErrors()){ return "formulario"; } return "adicionada"; }}Note que o metodo recebe um anotacao @Valid que vai validar a classe anotada e o parametro do tipo BidingResults tem uma grande quantidade de metodos que se referem ao registro de erros no form como, se tem erro ou nao na resposta, quem deu erro, quantidade de erros, etcAgora vou demonstrar como mostrar o(s) erro(s) no form.O proprio Spring tem uma taglib para isso<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>crie uma pagina jsp com o nome formulario.jsp<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Adicionar cliente</title></head><body> <form action="adicionaCliente" method="post"> Nome: <form:errors cssstyle="color:red;" path="cliente.nome"> <br /> Email: <form:errors cssstyle="color:red;" path="cliente.email"> <br /> </form></body></html>Estrutura do projetoGithub: https://github.com/cristianoperez/SpringValidator Na ordem em que aparecem na imagem:1-Cachoeira dos Garcia I2-Cachoeira Assombrada3-Cachoeira das Pedras4-Cachoeira dos Garcia II5-Cachoeira do Bananal6-Cachoeira Tres Marias7-Cachoeira do Batuque Museu do Mamulengo Espaco Tirida Na ordem em que aparecem na imagem:1-Sunset de Belo2-Sol de Minas, Uai!3-do, re, mi, fa, SOL4-Luz do Criador do horizonte mineiro Na ordem em que aparecem na imagem:1-Arcos da Lapa e morro de Santa Tereza, 18752-Enseada de Botafogo, 18203-Fonte da Saudade, 18714-Igreja de S. Conrado, 19175-Igreja da Gloria, 18406-Ipanema, Leblon e Lagoa, 18807-Serie Marinhas8-Saco da Gloria, 1885 Na ordem em que aparecem na imagem:1- Verruga do Frade - Teresopolis - RJ2- Pedra da Tartaruga - Posse, Teresopolis - RJ3- Pedra do Macaco - Teresopolis - RJ4- Dedo de Deus - Guapimirim - RJ5- Mulher de Pedra - Teresopolis - RJ Na ordem em que aparecem na imagem:1-Telefonistas2-Telefonistas e Supervisoras3-Posto de Servico4-Linha Interurbana5-Instalacao de cabos6-Oficina - CTB7- CEOS Modulo VidaNa ordem em que aparecem na imagem: 1-Mulher amamentando2-Menino rodando pneu/meninas brincando de corrupio3-Rendeira4-Enterro na rede5-Casal de noivos a cavalo6-Beijo7-Pescador8-Passeata Na ordem em que aparecem na imagem:1-Telems: Ecoturismo2-Teleacre: Indios3-Telegoias: Fauna4-Teleron: Rio Amazonas5-Telesc: Praias6-Telemat: Interior do pais7-CTMR: Comidas Tipicas8-Telepar: Futebol9-Telebrasilia: Carnaval Nada melhor do que ter crianca em casa....da um trabalho danado mas a diversao e garantida!Para comemorar este dia tao especial separei algumas ideias de espaco para criancas porque acredito muito que a arte e essencial para vida dos pequeninos.Pretendo