【发布时间】:2021-02-13 20:13:00
【问题描述】:
有人可以向我解释一下 spring 如何从视图中的表单填充对象吗?
看看我的例子
人物类:
public class Person {
private String name;
private String password;
/*
constructors, getters and setters
*/
}
控制器:
@Controller
@RequestMapping("/")
public class HomeController {
@GetMapping
public String showForm() {
return "form";
}
@PostMapping
public String processForm(@ModelAttribute("person") Person person) {
return "displayForm";
}
}
form.html:
<body>
<form method="post">
<label for="name">Name:</label>
<input type="text" name="name">
<label for="password">password:</label>
<input type="text" name="password">
<input type="submit">
</form>
</body>
displayform.html:
<body>
<label for="name">Name:</label>
<span th:text="${person.name}"></span>
<br>
<label for="password">Password:</label>
<span th:text="${person.password}"></span>
</body>
我在想这个例子会返回一个空对象,但它确实有效。
问题是 spring 如何在不为表单定义 th:object=${person} 表单属性的情况下填充人员?
【问题讨论】:
-
由于
<input>元素中的name属性,表单值绑定到Person的字段。如果名称与Person字段不匹配,则Person对象将包含空值。th:只是一种显示数据的方式,因此对表单提交毫无帮助。
标签: java spring spring-boot thymeleaf