1. 程式人生 > >SpringMVC作用域傳值的幾種方式

SpringMVC作用域傳值的幾種方式

index.jsp頁面:

request:${requestScope.req}<br/>
session:${sessionScope.session }<br/>
sessionParam:${sessionScope.sessionParam }<br/>
application:${applicationScope.application }<hr/>
map:${map }<hr/>
model:${model }<hr/>
ModelAndView:${mav }

控制器:

    //1、使用原生servlet
	@RequestMapping("demo1")
	public String demo1(HttpServletRequest req,HttpSession sessionParam){
		//request作用域
		req.setAttribute("req","request的值");
		//session作用域
		HttpSession session = req.getSession();
		session.setAttribute("session", "session的值");
		sessionParam.setAttribute("sessionParam", "sessionParam得值");
		//application作用域
		ServletContext application = req.getServletContext();
		application.setAttribute("application", "application的值");
		return "/index.jsp";
	}
	
	//2、使用map集合
	@RequestMapping("demo2")
	public String demo2(Map<String, Object> map){
		map.put("map","map的值");
		return "/index.jsp";
	}
	
	//3、使用model介面
	@RequestMapping("demo3")
	public String demo3(Model model){
		model.addAttribute("model", "model的值");
		return "/index.jsp";
	}
	
	//4、使用ModelAndView類
	@RequestMapping("demo4")
	public ModelAndView demo4(){
		ModelAndView mav = new ModelAndView("/index.jsp");
		mav.addObject("mav", "ModelAndView的值");
		return mav;
	}

執行效果圖:

1、使用原生servlet

   在HanlderMethod引數中新增作用域物件

2、使用map集合

   2.1 把map中的內容放入request作用域中

   2.2 spring會對map集合通過BindingAwareModelMap進行例項化

3、使用model介面

   把內容放入request作用域中

4、使用ModelAndView類