Entity
public class UserVerification {
private String email;
private int otp;
public UserVerification(String email, int otp) {
this.email = email;
this.otp = otp;
}
Controller
@GetMapping(value = "/verification", params = "email")
public String verificationPage(@RequestParam("email") String email, Model model) {
UserVerification verification = new UserVerification();
verification.setEmail(email); // setting value of email in object
model.addAttribute("verification", verification);
return "verification";
}
@PostMapping("/verify")
public String verifyUser(@ModelAttribute("verification") UserVerification verification, Model model) {
System.out.println(verification.getOtp()); // otp is proper
System.out.println(verification.getEmail()); // email is null but why?
if (userService.verifyUser(verification)) {
return "redirect:/user/login";
}
model.addAttribute("verification", verification);
return "verification?email=" + verification.getEmail();
}
verification.html
<form id="verifyForm" th:action="@{/user/verify}"
th:object="${verification}" method="post">
<label for="verificationCode"></label><input type="text"
th:field="*{otp}" id="verificationCode" name="verificationCode"
placeholder="Enter code"> <br>
<small style="color: #dc3545"></small><br>
<button class="btn btn-primary" type="submit" style="margin-top:20px">Verify</button>
</form>
If I'm binding UserVerification to Model object after setting value of email. but when I'm catching same object Using Post method why value is lost here.