在SpringMVC中,调用方法前会先创建一个隐含的数据模型,作为模型数据的存储容器.也就是说在每次的前后端请求时,会携带一个背包,不管你有没有用到,这个背包是存在的,用来存放我们交互的数据的值
有个
@ModelAttribute
注解,意思是在请求
方法调用之前
,会优先
执行被这个注解修饰的方法
在前端向后端请求时,Spring 就会自动创建好 Model 和 ModelMap 实例,我们只需要使用即可.
Model
一、理解
Model 是一个接口,public class ExtendedModelMap extends ModelMap implements Model
,通过 .attribue()
添加数据进背包,存储的数据域范围是 requestScope
通过 Controller 来返回目标页面.
二、代码
@RequestMapping(value = "/index")
public String index1(Model model) {
model.addAttribute("result", "后台返回index1");
return "result";
}
ModelMap
一、理解
通过 .attribue()
添加数据进背包,作用和 request
的 setAttribute
类似,用来传递请求处理的数据,作用域范围 requestScope
通过 Controller 来返回目标页面.
二、代码
public String xxxxmethod(String someparam,ModelMap model)
{
//省略方法处理逻辑若干
//将数据放置到 ModelMap 对象 model 中,第二个参数可以是任何java类型
model.addAttribute("key",someparam);
......
//返回跳转地址
return "success";
}
ModelAndView
一、理解
Model 和 ModelMap 的结合体,有多种重载的构造方法,可以在构造方法中传入参数指定跳转到的目标页面
,也可以通过 ModelAndView 实例对象的方法指定,最后返回 实例对象
即可
二、代码
@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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。