SpringMVC 的控制器产生模型数据,并使用模型数据渲染视图。
那么SpringMVC如何输出模型数据呢?
SpringMVC提供了多种途径输出模型数据,如下;
ModelAndView
控制器中的方法返回值类型是它的话,方法体就可以通过它添加模型数据。例如:
ModelAndView mav = new ModelAndView();
mav.addObject("user" , user);
@ModelAttribute
方法的入参标注该注解后,入参的对象会放到数据模型中。例如:
public ModelAndView doSomthing(@ModelAttribute("user") User user){
//user将自动加入到模型数据中
}
Map 、Model 及 ModelMap
入参为:
org.springframwork.ui.Model
org.springframwork.ui.ModelMap
java.util.Map
时,方法返回时,自动将其中的数据加入到模型数据中。
@SessionAttributes
将模型中的某个属性对应的对象放到session中。例如:
//该控制器中属性为user的对象放入session中
@SessionAttributes("user")
public class UserController(){
@RequestMapping(value="login")
public String doSomthing(@ModelAttribute("user") User user,SessionStatus sessionStatus){
//该处理方法传入的user放入到session中
//do somthing
//使用sessionStatus.setComplete()清除处理器对应的session属性
}
}