En una aplicación web de Spring Boot, el User desea restablecer su contraseña, por lo que ingresa a la página Reset password . Ahora quiero que escriba su dirección de correo electrónico, presione Reset y quiero redirigir a myapp/resetPassword?email=HIS_EMAIL para manejar el restablecimiento de contraseña.
Mi código:
@RequestMapping(value = "/resetPassword", method = RequestMethod.GET) public String resetPasswordForm(Model model){ model.addAttribute("email", new String()); return "resetPassword"; } @RequestMapping(value = "/resetPassword", method = RequestMethod.POST) public String resetPassword(@RequestParam("email") String email) { User user = userService.findUserByEmail(email); //playing with logic return "redirect:/"; }¿Cómo puedo lograrlo en mi página de thymeleaf? Intenté algo como esto:
<form th:action="@{/resetPassword(email=${email})}" method="post"> <input type="email" th:field="${email}" th:placeholder="Email" /> <div class="clearfix"> <button type="submit">Reset</button> </div> </form> Desafortunadamente, mi email siempre es nulo. ¿Alguien puede ayudar?
"th:field" es solo para Entity-Beans. Esto debería funcionar:
@GetMapping(value = "/resetPassword") public String resetPassword(@RequestParam(value="email",required=false) String email) { if(email==null) return "resetPassword"; User user = userService.findUserByEmail(email); //playing with logic return "redirect:/"; } <form th:action="@{/resetPassword}" method="get"> <input type="email" th:name="email" th:placeholder="Email" /> <div class="clearfix"> <button type="submit">Reset</button> </div> </form> Y no olvide: Thymeleaf no es Javascript. Se representa en el servidor. Cosas como @{/resetPassword(email=${email})} generarían, por ejemplo /resetPassword?email=anValueYouAddedToModelInController