这里的问题是我不知道怎么说应该从哪个变量中保存模板中的信息
控制器方法:
@PostMapping("/users/register")
public String register(UserCreateRequestModel viewModel, Model model){
if (this.userService.register(viewModel.getUsername(), viewModel.getPassword())){
return "redirect:/";
}
model.addAttribute("viewModel", viewModel);
return "users/register";
}
模板:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<h1>Register here</h1>
<form th:object="${viewModel}" method="post">
Username: <input th:field="*{username}" name="username" type="text" /></br>
Password: <input th:field="*{password}" type="password" /></br>
<input type="submit" value="Register" />
</form>
</body>
</html>
此代码正常运行,但我无法理解如何说我希望输入字段中的信息在UserCreateRequestModel中填充。这段代码对我来说太神奇了。我正在寻找一个注释但却无法找到它。
答案 0 :(得分:0)
解决方案是使用@ModelAttribute(&#34; viewModel&#34;)。它获取所有viewModel字段。
@PostMapping("/users/register")
public String register(@ModelAttribute("viewModel") UserCreateRequestModel viewModel, Model model){
//System.out.println(viewModel.getUsername());
//System.out.println(1111);
if (this.userService.register(viewModel.getUsername(), viewModel.getPassword())){
return "redirect:/";
}
model.addAttribute("viewModel", viewModel);
return "users/register";
}