一、五大请求域操作方式
1. request.setAttribute()
使用原生 request 对象
@RequestMapping("/h01")
public String h01(HttpServletRequest request){
request.setAttribute("uname","jim");
return "succ02";
}
2. model.addAttribute()
Model其实是一个map,它的角色就是request属性域
@RequestMapping("/h02")
public String h02(Model model){
model.addAttribute("uname","tom");
return "succ02";
}
3. modelMap.addAttribute()
ModelMap其实是一个map,它的角色也是request属性域
@RequestMapping("/h03")
public String h03(ModelMap modelMap){
modelMap.addAttribute("uname","lucy");
return "succ02";
}
4. map.put()
既然Model和ModelMap就是一个map,直接用map保存作用域!
@RequestMapping("/h04")
public String h04(Map map){
map.put("uname","kate");
return "succ02";
}
5. ModelAndView
1.创建ModelAndView对象
2.存入模型数据
3.设置视图名称
@RequestMapping("/h05")
public ModelAndView h05(){
ModelAndView mv = new ModelAndView();
mv.addObject("uname","rose");
mv.setViewName("succ02");
return mv;
}
6. 模型的本质
SpringMVC 传入的 Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的。
二、会话域
1.使用会话域最简单直接的办法就是使用原生的 HttpSession 对象
2.使用原生request对象:request.getSession().setAttribute() = session.setAttribute()
@RequestMapping("/attr/session")
public String attrSession(HttpSession session) {
session.setAttribute("HW", "helloworld");
return "index。html";
}
三、应用域
应用域同样是使用原生对象来操作
@Autowired
private ServletContext servletContext;
@RequestMapping("/attr/application")
public String attrApplication() {
servletContext.setAttribute("SC", "helloworld");
return "index.html";
}