Я пытаюсь написать функцию сброса пароля для веб-сайта.Я сталкиваюсь с проблемой, что я использую пару перенаправлений для перехода от postmappings к getmappings, и они, кажется, не несут атрибуты, которые им нужны с ними, а именно пользовательский объект, который я пытаюсь сбросить форму пароля, здесьпример одного из моих сопоставлений:
@PostMapping("/user/forgot")
public String emailCheck (@RequestParam String email, Model model){
User user = userDao.findByEmail(email);
if (user==null){
model.addAttribute("wrongEmail", true);
return "redirect:/user/forgot";
}
else {
model.addAttribute("user", user);
return "redirect:/verifysecurity";
}
}
А вот шаблон, в котором я затем вызываю атрибут пользователя:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head th:replace="fragments/header :: header('Security', '')"></head>
<body>
<div th:replace="fragments/navbar :: navbar"></div>
<h1 th:if="${wrongAnswer}">Answer does not match record on file, please try again</h1>
<h1>Please answer your security question: WHat is your best friends name?</h1>
<form id="passwordForm" th:action="@{/verifysecurity}" th:method="post">
<label for="answer">Answer</label>
<br/>
<input type="text" id="answer" name="answer"/>
<input type="hidden" name="user" id="user" th:value="${user}"/>
<input type="submit" class="btn btn-block btn-primary" value="Request"/>
</form>
</body>
</html>
Затем на следующем сопоставлении впоследствии я получаю нольисключение указателя для пользователя:
@PostMapping("/verifysecurity")
public String verify (Model model, @RequestParam User user, @RequestParam String answer){
String security = user.getSecurity_question();
if (answer.equals(security)){
model.addAttribute("user", user);
return "redirect:/reset/password";
} else {
model.addAttribute("wrongAnswer", true);
model.addAttribute("user", user);
return "redirect:/verifysecurity";
}
}
Как я могу это исправить, и если атрибуты модели не будут работать, что я должен делать вместо этого?