如何管理弹簧填充对象从视图到控制器?



是否有人向我解释一下spring如何从视图中的表单填充对象?

看一下我的例子

Person类:

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}表单属性的形式?

在Spring Web MVC中,DispatcherServlet类作为前端控制器。它负责管理spring mvc应用程序的流程。

整个流程如下-

  1. 第一个请求将被DispatcherServlet接收。

  2. DispatcherServlet将在HandlerMapping的帮助下获取与给定请求相关联的控制器类名。

  3. 现在请求转移到控制器,然后控制器将通过执行适当的方法处理请求并将ModelAndView对象(包含模型数据和视图名称)返回给DispatcherServlet

  4. DispatcherServlet将模型对象发送给ViewResolver以获得实际的视图页面。

  5. 在最后一步DispatcherServlet将传递Model object到View页面以显示结果。

相关内容

  • 没有找到相关文章

最新更新