SpringMvc返回数据有以下这几种方式:
1.采用HttpServletRequest:
request.setAttribute("s", "这是通过request返回页面的数据");


2.采用ModelAndView方式:
采用这种的时候具体方法的返回值要为ModelAndView。
@RequestMapping(value="/index")
public ModelAndView helloaction3(){
 ModelAndView modelAndView = new ModelAndView();
 modelAndView.addObject("s", "这是通过ModelAndView返回页面的数据");
 return modelAndView;
}


3.采用Model方式:
@RequestMapping(value="/index")
public String helloaction3(Model model){
 model.addAttribute("s", "这是通过Model返回页面的数据");
 return "index";
}


4.采用Map的方式:
@RequestMapping(value="/index")
public String helloaction3(Map map){
 map.put("s", "这是通过Map返回页面的数据");
 return "index";
}



5.采用ModelMap的方式:
@RequestMapping(value="/index")
public String helloaction3(ModelMap modelmap){
 modelmap.addAttribute("s", "这是通过ModelMap返回页面的数据");
 return "index";
}



如果有多种一起出现,则ModelMap中存储了模型中的所有数据。



为什么控制器方法设置只返回视图信息,但没有返回model信息,可是前台依然接收得到?

因为Spring Web MVC 提供Model、Map或ModelMap让我们能去暴露渲染视图需要的模型数据。即只要加入这个参数,前台便能获取这些暴露的模型数据