有人能解释一下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";
}
}
表单.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>
显示窗体.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}
窗体的窗体属性?
1条答案
按热度按时间gcuhipw91#
在SpringWebMVC中,
DispatcherServlet
类充当前端控制器。它负责管理springmvc应用程序的流程。整个流程如下所示-
第一个请求将由
DispatcherServlet
.DispatcherServlet
会得到HandlerMapping
并了解与给定请求关联的控制器类名。现在请求转移到控制器,然后控制器将通过执行适当的方法和返回来处理请求
ModelAndView
对象(包含模型数据和视图名称)返回到DispatcherServlet
.DispatcherServlet
将模型对象发送到ViewResolver
以获取实际视图页。最后一步
DispatcherServlet
将通过Model object
以显示结果。