首页 > 代码库 > SpringMvc-modelAndView

SpringMvc-modelAndView

springMvc中modelAndview是非常重要也是非常常用的,它能够同时把模型数据和跳转地址一起封装进ModelAndview

实现原理的简单说明:

1.封装model:在封装成model的过程中,如果我们往modelAndview中添加多个参数时候,其实是把数据都存放在了一个Map中,让后循环Map,把数据从map中取出来在通过setAttribute放入域域对象中,我们在前台通过域对象就能拿到数据

2.跳转地址:跳转地址是通过SpringMVC配置文件中拿到前缀+返回字符串+springMvc中拿到后缀组成,在解析视图的时候把拼装的地址通过转发的方式跳转到对应的页面

 

 //把数据和跳转地址封装进modelAndView   
@RequestMapping(
"/testModelAndView") public ModelAndView testModelAndView(){ String viewName = SUCCESS; ModelAndView modelAndView = new ModelAndView(viewName); //添加模型数据到 ModelAndView 中. modelAndView.addObject("time", new Date()); return modelAndView; }

// 页面通过域对象拿到数据
 time: ${requestScope.time }

3.当我们知道大概原理时候就不在受modelAndvie的限制,我们返回的字符串无非就是拼装的地址,无论我们返回什么字符串都会被组装进modelAndview中,于是我们只需要返回字符串,而模型数据完全可以放入我们自己的map中:

//我们自己的Map封装了我们自己的数据
@RequestMapping("/testMap") public String testMap(Map<String, Object> map){ map.put("name", Arrays.asList("小明","小红","小军")); return SUCCESS; }
//通过域对象取出我们的模型数据
name: ${requestScope.name }

 

SpringMvc-modelAndView