Foro sobre Java EE > Spring boot . Al validar me abre el formulario sin estilos¿?
Estoy iniciandome en Spring Boot y me estoy encontrando con el siguiente problema, no carga los estilos una vez que validas el formulario. El codigo es muy sencillo os lo ajunto.
El controlador @Controller public class Controlador {
La clase POJO que valido que solo tiene un campo @Component public class RecuperarPassword { @NotEmpty(message="{RecuperarPassword.email.novacio}") private String email;
public RecuperarPassword(String email) { super(); this.email = email; }
public RecuperarPassword() { super(); }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
Estoy iniciandome en Spring Boot y me estoy encontrando con el siguiente problema, no carga los estilos una vez que validas el formulario.
El codigo es muy sencillo os lo ajunto.
El controlador
@Controller
public class Controlador {
@Autowired
UsuarioServicios usuarioservicio;
@Autowired
RecuperarPassword recuperarpassword;
@GetMapping({"/","/login"})
public String bienvenido(Model modelo) {
modelo.addAttribute("usuario",new Usuario());
return "login";
}
@GetMapping("/index")
public String index(Model modelo) {
return "index";
}
@GetMapping("/admin/NuevoUsuario")
public String nuevousuario(Model modelo) {
modelo.addAttribute("usuario", new Usuario());
return "/admin/NuevoUsuario";
}
@PostMapping("/admin/NuevoUsuario/Submit")
public String guardar(@ModelAttribute("usuario") Usuario usuario) {
usuario.setEnable(true);
usuarioservicio.registrar(usuario);
return "index";
}
@GetMapping("/RecuperarPassword")
public String recuperarcontraseña(Model modelo) {
modelo.addAttribute("recuperarpassword", recuperarpassword);
return "RecuperarPassword";
}
//Aqui realizo la validacion
@PostMapping("/RecuperarPassword/Submit")
public String nuevapassword(@Valid @ModelAttribute("recuperarpassword") RecuperarPassword recuperarpassword, BindingResult bildingresult) {
if(bildingresult.hasErrors()) {
return "RecuperarPassword";
}else {
Usuario usuario=usuarioservicio.findByEmail(recuperarpassword.getEmail());
System.out.println("Ver-->"+recuperarpassword.getEmail());
return "NuevaPassword";
}
}
}
La clase POJO que valido que solo tiene un campo
@Component
public class RecuperarPassword {
@NotEmpty(message="{RecuperarPassword.email.novacio}")
private String email;
public RecuperarPassword(String email) {
super();
this.email = email;
}
public RecuperarPassword() {
super();
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "RecuperarPassword [email=" + email + "]";
}
@Override
public int hashCode() {
return Objects.hash(email);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
RecuperarPassword other = (RecuperarPassword) obj;
return Objects.equals(email, other.email);
}
}
Y el formulario que al pedir el email me carga los estilos pero al validar no.
<!DOCTYPE html>
<html lang="en" xmlns:th="https://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Login -Trazabilidad Alimentaria</title>
<link href="css/styles.css" rel="stylesheet" />
</head>
<div id="layoutAuthentication">
<div id="layoutAuthentication_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-5">
<div class="card shadow-lg border-0 rounded-lg mt-5">
<div class="card-header"><h3 class="text-center font-weight-light my-4">Recuperar Password</h3></div>
<div class="card-body">
<form th:action="@{/RecuperarPassword/Submit}" method="post" th:object="${recuperarpassword}">
<div class="form-floating mb-3">
<label for="email">Email</label>
<span th:if="${#fields.hasErrors('email')}" th:errors="*{email}" class="text-center" id="id-error">Errores</span>
</div>
<div class="d-flex align-items-center justify-content-between mt-4 mb-0">
Recuperar
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutAuthentication_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright © Your Website 2021</div>
<div>
Privacy Policy
·
Terms & Conditions
</div>
</div>
</div>
</footer>
</div>
</div>
</html>
No me deja adjuntar imagenes para que veais el resultado.
Cuando no me carga los estilos si intento acceder a la hoja de estilos desde el codigo fuente me muestra el siguiente error:
<html><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Sat Nov 06 10:26:54 CET 2021</div><div>There was an unexpected error (type=Not Found, status=404).</div><div></div></html>
Entiendo que error me esta indicando que controle los errores y el error que da es una 404.
Pero si que puedo acceder a los estilos cuando se carga sin validar.
Si alguine puede aportar algo en mi aprendizaje ¿? No veo donde me puedo estar equivocando. OS lo agradezco.Saludos