Phu*_*ong 1 spring bean-validation thymeleaf spring-boot
我有一个处理密码更改的表格。
<form method="POST" th:object="${changePassword}" th:action="@{/user/change_pass}">
<input type="password" class="form-control" id="oldpass" th:field="*{oldPassword}">
<input type="password" class="form-control" id="newpass" th:field="*{newPassword}"
<input type="password" class="form-control" id="confirmPass" th:field="* {confirmNewPassword}"
<input type="submit" class="btn btn-outline-primary btn-rounded waves-effect" value="Send"/>
</form>
Run Code Online (Sandbox Code Playgroud)
在控制器中
@GetMapping(value = "/user/change_pass")
private String changePasswordPage(Model model){
if (!model.containsAttribute("changePassword")) {
model.addAttribute("changePassword", new ChangePassword());
}
return "web/view/accPasswordPage";
}
@PostMapping(value = "/user/change_pass")
private String saveNewPassword(@Valid ChangePassword changePassword, BindingResult result, Model model, RedirectAttributes redirectAttributes){
if (result.hasErrors()) {
redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.changePassword", result);
redirectAttributes.addFlashAttribute("changePassword", changePassword);
return "redirect:/user/change_pass";
}
return "redirect:/user/home";
}
Run Code Online (Sandbox Code Playgroud)
当用户单击“发送”时,如果出现错误并返回,但表单数据丢失,如下所示:

有什么办法可以让用户输入的数据不丢失但仍然保留?谢谢
我将视图更改为以下代码并且它有效。
<form method="POST" th:object="${changePassword}" th:action="@{/user/change_pass}">
<input type="password" class="form-control" id="oldPassword" name="oldPassword" th:value="*{oldPassword}">
<input type="password" class="form-control" id="newPassword" name="newPassword" th:value="*{newPassword}" />
<input type="password" class="form-control" id="confirmNewPassword" name="confirmNewPassword" th:value="*{confirmNewPassword}" />
<input type="submit" class="btn btn-outline-primary btn-rounded waves-effect" value="Send"/>
</form>
Run Code Online (Sandbox Code Playgroud)
我的控制器代码用于跳过所有其他逻辑并执行简单的重定向。
@GetMapping(value = "/user/change_pass")
private String changePasswordPage(Model model){
if (!model.containsAttribute("changePassword")) {
model.addAttribute("changePassword", new ChangePassword());
}
return "index";
}
@PostMapping(value = "/user/change_pass")
private String saveNewPassword(@Valid ChangePassword changePassword, BindingResult result, Model model, RedirectAttributes redirectAttributes){
redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.changePassword", result);
redirectAttributes.addFlashAttribute("changePassword", changePassword);
return "redirect:/user/change_pass";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |