Olá pessoal! Tenho um projeto feito em spring boot que estou tendo problema para submeter um formulario vou tenho alguns metodos na controller para reinicializacao de senha que são: 1- Gera url e envia por email para o usuario url via GET 2- É o metodo chamado na url gerada no primeiro via GET 3- Método POST que recebe os dados inseridos no formulario estou utulizando thymeleaf
A controller está anotada assim:
@RequestMapping("api/user")
@Controller
public class UserSystemController {
Os métodos são:
@RequestMapping(value = "/requestResetPassword", method = RequestMethod.POST, produces = { "application/json; charset=UTF-8" })
@ResponseBody
public ReturnHolder requestResetPassword(@RequestBody UserHolder loginHolder, @RequestHeader(required = false) HttpHeaders header) {
ReturnHolder holder = new ReturnHolder();
try {
//chama o metodo que gera a url até aqui esta ok
holder.setData(userSystemServiceImpl.requestResetPassword(loginHolder));
} catch (Exception e) {
...
}
return holder;
}
// metodo recebe os parametros confere tudo e retorna a pagina ele tbm está funcionando
@RequestMapping(value = "/resetPassword/{validationCode}/{email}", method = RequestMethod.GET)
public ModelAndView resetPassword(@PathVariable("validationCode") String validationCode, @PathVariable ("email") String email,
@RequestHeader(required = false) HttpHeaders header, Model models) {
ModelAndView model = null;
try {
ResetPasswordHolder resetPassword = userSystemServiceImpl.resetPassword(validationCode, email);
model = new ModelAndView("resetPassword");
//model.addObject("email", resetPassword.getEmail());
//model.addObject("validationCode", resetPassword.getValidationCode());
model = "/resetPassword";
} catch (Exception e) {
...
}
return model;
}
// o problema esta em chamar esse método nao consigo na pagina simplesmente
//nao chama, tentei diversas coisas mas nao vai
@PostMapping("changePassword")
public String salvar(@RequestParam("password") String password, @RequestParam("dateBirth") String dateBirth,
@RequestParam("emails") String emails, @RequestParam("validationCodes") String validationCodes){
try {
System.out.println(validationCodes);
System.out.println("ok");
//userSystemServiceImpl.changePassword(new ResetPasswordHolder(dateBirth.getTime(), email, password, validationCode));
} catch (Exception e) {
e.printStackTrace();
}
return "sucesso";
}
//o html é esse que nao consigo fazer chamar o metodo tentei diversas coisas
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Reset de senha </title>
<link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript">
onload = function(){
$("#emails").val($("#username").text());
$("#validationCodes").val($("#code").text());
};
</script>
<div class="container" style="margin-top: 20px" >
<form action="changePassword" method="post" >
<div>
<h1>Para alterar a senha preencha os campos abaixo</h1>
<br/>
<hr/>
</div>
<div class="form-group">
<span>Você ira alterar a senha para o email: </span>
<span th:text = '${email}' id="username"></span><br/>
<span th:text = '${validationCode}' id="code"></span><br/><br/>
<input type="text" class="form-control" id="validationCodes" name="validationCodes" />
</div>
<div class="form-group">
<label for="emails">E-mail</label>
<input type="email" class="form-control" id="emails" name="emails" />
</div>
<div class="form-group">
<label for="dateBirth">Data de aniversário</label>
<input type="date" class="form-control" id="dateBirth" name="dateBirth" />
</div>
<div class="form-group">
<label for="password">Senha</label>
<input type="password" class="form-control" id="password" name="password" />
</div>
<button type="submit" class="btn btn-primary">Salvar</button>
</form>
</div>
</body>
</html>
Quem puder me ajudar ficarei muito agradecido.