I can not display the Spring error message

0

I'm trying to validate some fields with annotations, but I can not bring the messages to the jsp page:

User.java

mport java.util.Calendar;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class Usuario {

private String nome;
private String sobrenome;
private String cpf;
private String identidade;
@NotNull(message="{usuario.email.nulo}")
@Email(message="{usuario.email.invalido}")
private String email;
@NotNull(message = "{usuario.senha.nula}")
@Size(min = 6, message="{usuario.senha.pequena}")
private String senha;
private Endereco endereco;
private Calendar dataNascimento;

It has a Client Extending Client class:

And has ClientController.java

package br.com.wlsnprogramming.loja.controller;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.wlsnprogramming.loja.model.usuario.Cliente;

@Controller
@RequestMapping("cliente")
public class ClienteController {

@RequestMapping("login")
public String formLogin() {
    return "cliente/login";
}
@RequestMapping("efetuarLogin")
public String efetuarLogin(@Valid Cliente cliente, BindingResult result, HttpSession session) {
    if(result.hasFieldErrors("email") || result.hasFieldErrors("senha")) {
        System.out.println(result.getFieldError("senha").getDefaultMessage());//Aqui em fiz o teste para ver se recuperava a mensagem, ate aqui deu certo
        return "redirect:login";
    }
    //faz a verificação aqui
    return "redirect:meusPedidos";
}
}

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8"/>
<title>Inicio</title>
<link rel="stylesheet" href="../resources/styles/login.css" type="text/css"/>
<link rel="stylesheet" href="../resources/styles/style.css" type="text/css"/>
</head>
<body>
<c:import url="../header.jsp"/>
<div id="conteudo">
<div id="centro-login">
    <h1>Entrar na Conta</h1>
    <p>Ainda não tem uma conta? <a href="#">Crie já!</a></p>
    <form id="login" method="post" action="efetuarLogin">
        <label for="email">E-mail:</label>
        <input type="email" name="email" id="email" required="true" />
        <label for="senha">Senha:</label>
        <input type="password" name="senha" id="senha" required="true" />
        <!--É AQUI QUE EU TENTO RECUPERAR A MENSAGEM DE ERRO, MAS NÃO CONSIGO, NÃO ENTEDI MUITO BEM O QUE VAI NO ATRIBUTO path -->
        <p><form:errors path="cliente.senha" cssStyle="color:red"/></p>
        <!--************************************************-->
        <input type="submit" value="Entrar"/>
        <p>Esqueceu a sua senha? Estão recupere <a href="#">clicando aqui!</a></p>
    </form>
</div>
</div>
<script type="text/javascript">
var menuAberto = false;
function abrirMenu(){
    if(!menuAberto){
        document.getElementById("menu-escondido").style.display = "block";
        menuAberto = true;
    } else {
        document.getElementById("menu-escondido").style.display = "none";
        menuAberto = false;
    }
}
</script>
<c:import url="../fooder.jsp"/>
</body>
</html>

I have tried to put everything in the path, but it does not work.

    
asked by anonymous 27.09.2017 / 16:50

1 answer

0

I've already discovered the error, it looks like it has to do the server-side redirection:

return "cliente/login";// direcionando diretamente para o jsp

or

return "forward:login";// direcionado para a função, mas do lado do servidor

You can not use redirect to redirect on the client side.

    
27.09.2017 / 17:48