有什么不清楚的!
@ModelAttribute 注解用于将 jsp 中的表单绑定到控制器,以使编写在 html 表单中的所有字段在控制器中可用。
What is @ModelAttribute in Spring MVC?
所以基本上一个带有@ModelAttribute 注释的方法在发布请求(表单提交)之后应该作为landing point 方法工作。
让我们举个例子,你有一个带有两个变量的 POJO:
public class ModelAttrExample {
String name;
String lastName;
///getter and setter...
}
一个 JSP indexForm.jsp
<form:form action="/greeting" >
<form:input path="name" />
<form:input path="lastName" />
<input type="submit" value="Submit" />
</form:form>
还有一个 SpringController
@Controller
public class GreetingController {
@RequestMapping(value="/greeting", method=RequestMethod.GET)
public String greetingForm(Model model) {
model.addAttribute("", new ModelAttrExample ());
return "indexForm";
}
@RequestMapping(value="/greeting", method=RequestMethod.POST)
public String greetingSubmit(@ModelAttribute ModelAttrExample example, Model model) {
example.getName();//same form value
example.getLastName(); //same form value
//do your logic here...
}
}
一旦提交表单,greetingSubmit() 方法就会被触发,并且填充了表单数据的ModelAttrExample 的实例将在该方法中可用。
所以... @ModelAttribute 用于从 html 表单字段中获取值并将这些数据放入类实例变量中。
我建议你从Spring学习这个教程,
写的很好,很容易理解
如果您需要更多信息,请随时询问:)