1. Model是”模型“的意思,是MVC架构中的”M“部分,是用来传输数据的。
2. 理解成MVC架构中的”M“和”V“,其中包含”Model“和”view“两部分,主要功能是:设置转向地址,将底层获取的数据进行存储(或者封装),最后将数据传递给View
3. Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到jsp页面中;ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称
4. model在Controller层的写法
@Controller //代表这个类会被spring接管,被这个注解的类中所有方法,如果返回值是string,并且有具体的页面可以跳转,那么就会被视图解析器解析
public class IndexController {
@RequestMapping("/demo") //意为请求 localhost:8080/demo
public String demo(Model model){
//封装数据(向模型中添加数据,可以jsp页面直接取出并渲染)
model.addAttribute("content","hello");
//会被视图解析器处理
return "hello"; //返回到哪个页面
}
}
model方法是可以返回一个对象的。model.addAttribute(String s,Object o),返回对象要创建一个实体对象生成getter和Setter,还有同String()方法
5. ModelAndView在Controller层的写法
@Controller
@RequestMapping
public class IndexController {
@RequestMapping("/demo2")
public ModelAndView demo2(){
ModelAndView modelAndView = new ModelAndView();
//返回到那个前端文件
modelAndView.setViewName("hello");
modelAndView.addObject("contentOne","helloOne");
modelAndView.addObject("contentTwo","helloTeo");
System.out.println(modelAndView);
return modelAndView;
}
}