怎么使用Model、ModelMap和ModelAndView

在SpringMVC中,调用方法前会先建立一个隐含的数据模型,做为模型数据的存储容器.

也就是说在每次的先后端请求时,会携带一个背包,无论你有没有用到,这个背包是存在的,用来存放咱们交互的数据的值html

有个 @ModelAttribute 注解,意思是在请求方法调用以前,会优先执行被这个注解修饰的方法前端


在前端向后端请求时,Spring 就会自动建立好 Model 和 ModelMap 实例,咱们只须要使用便可.java


Model
1、理解

Model 是一个接口,public class ExtendedModelMap extends ModelMap implements Model ,经过 .attribue() 添加数据进背包,存储的数据域范围是 requestScope segmentfault

经过 Controller 来返回目标页面.后端

2、代码
@RequestMapping(value = "/index")
    public String index1(Model model) {
        model.addAttribute("result", "后台返回index1");
        return "result";
}
ModelMap
1、理解

经过 .attribue() 添加数据进背包,做用和 requestsetAttribute 相似,用来传递请求处理的数据,做用域范围 requestScope app

经过 Controller 来返回目标页面.jsp

2、代码
public String xxxxmethod(String someparam,ModelMap model)
{
     //省略方法处理逻辑若干
     //将数据放置到 ModelMap 对象 model 中,第二个参数能够是任何java类型
      model.addAttribute("key",someparam);
         ......
     //返回跳转地址
      return "success";
}
ModelAndView
1、理解

Model 和 ModelMap 的结合体,有多种重载的构造方法,能够在构造方法中传入参数指定跳转到的目标页面,也能够经过 ModelAndView 实例对象的方法指定,最后返回 实例对象 便可spa

2、代码
@RequestMapping("/index")
    public ModelAndView testModelAndView(){
        //建立一个模型视图对象
        ModelAndView mav = new ModelAndView();
        // ......    
        // //将数据放置到 ModelAndView 对象 view 中,第二个参数能够是任何 java 类型
        mav.addObject("cs", cs);
        // 放入 jsp / html 路径
        mav.setViewName("lankeren");
         //返回 ModelAndView 对象 mav
        return mav;
    }
相关文章
相关标签/搜索