SpringMVC 作用域传值的几种方式
1.使用原生 Servlet
在 HanlderMethod 参数中添加作用域对象
@RequestMapping("demo1")
public String demo1(HttpServletRequest abc,HttpSession sessionParam){
//request 作用域
abc.setAttribute("req", "req 的值");
//session 作用域
HttpSession session = abc.getSession();
session.setAttribute("session", "session 的值");
sessionParam.setAttribute("sessionParam","sessionParam 的值");
//appliaction 作用域
ServletContext application = abc.getServletContext();
application.setAttribute("application","application 的值");
return "/index.jsp";
}
2.使用 Map 集合
- 把 map 中内容放在 request 作用域中
- spring 会对 map 集合通过 BindingAwareModelMap 进行实例化
@RequestMapping("demo2")
public String demo2(Map<String,Object> map){
System.out.println(map.getClass());
map.put("map","map 的值");
return "/index.jsp";
}
3.使用 SpringMVC 中 Model 接口
把内容最终放入到 request 作用域中
@RequestMapping("demo3")
public String demo3(Model model){
model.addAttribute("model", "model 的值");
return "/index.jsp";
}
4.使用 SpringMVC 中 ModelAndView 类
@RequestMapping("demo4")
public ModelAndView demo4(){
//参数,跳转视图
ModelAndView mav = new ModelAndView("/index.jsp");
mav.addObject("mav", "mav 的值");
return mav;
}