Criei uma tela de login e gostaria que toda vez que o usuário executasse uma tentativa de login inválido, uma mensagem como “credenciais incorretas” fosse mostrada para o usuário. Tentei fazer, porém, a mensagem de erro vai na url e não no corpo.
Código Java
@Controller
public class LoginController {
@Autowired
private ClienteDAO repositorio;
@GetMapping(value = "/login")
public String loginClientes() {
return "Login";
}
@PostMapping(value = "/autentificar")
public ModelAndView autentificar(@RequestParam("loginemail") String email,
@RequestParam("loginsenha") String senha) {
Cliente cliente = repositorio.findByEmailAndSenha(email, senha);
if (cliente != null) {
ModelAndView acessoAutorizado = new ModelAndView("redirect:/form");
acessoAutorizado.addObject("dados", cliente);
return acessoAutorizado;
} else {
ModelAndView acessoNegado = new ModelAndView("redirect:/login");
acessoNegado.addObject("msg", "Credenciais incorretas!");
return acessoNegado;
}
}
}
Formulário
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login</title>
</head>
<body>
<form method="post" action="/autentificar">
<div>
E-MAIL:<input type="text" name="loginemail" required="required">
<br></br>
SENHA:<input type="password" name="loginsenha" required="required">
<br></br>
<button type="submit">Enviar</button>
<h5><c:out value="${msg}"></c:out> </h5>
</div>
</form>
</body>
</html>