这一章我们主要来学习如何在控制器方法中保存数据到域对象之中
接下来我们将介绍几种常见的方法
一、使用ServletAPI向request域对象中保存数据
通过在控制器方法的形参位置中设置HttpServletRequest这一参数
随后在方法中就可以直接调用request对象的setAttribute()方法
@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request){
request.setAttribute("testScope", "hello,servletAPI");
return "success";
}
二、使用ModelAndView向request域对象保存数据
通过在方法内实例化ModelAndView对象,调用其addObject()方法保存数据
ModelAndView有Model和View两个功能
Model主要用于向请求域中保存数据
View主要用于实现页面的跳转
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
ModelAndView mav = new ModelAndView();
//向请求域共享数据
mav.addObject("testScope", "hello,ModelAndView");
//设置视图,实现页面跳转
mav.setViewName("success");
return mav;
}
三、使用Model向request域对象中保存数据
通过在控制器方法的参数位置中设置Model这一形参
随后在方法中就可以直接调用model对象的addAttribute()方法,保存数据
@RequestMapping("/testModel")
public String testModel(Model model){
model.addAttribute("testScope", "hello,Model");
return "success";
}
四、使用Map向request域对象中保存数据
通过在控制器方法的参数位置中设置Map集合这一形参
随后在方法中就可以直接调用map对象的put()方法,保存数据
@RequestMapping("/testMap")
public String testMap(Map<String, Object> map){
map.put("testScope", "hello,Map");
return "success";
}
五、使用ModelMap向request域对象中保存数据
通过在控制器方法的参数位置中设置ModelMap这一形参
随后在方法中就可以直接调用modelMap对象的addAttribute()方法,保存数据
@RequestMapping("/testModelMap")
public String testModelMap(ModelMap modelMap){
modelMap.addAttribute("testScope", "hello,ModelMap");
return "success";
}
六、通过Session向session域对象中保存数据
通过在控制器方法的参数位置中设置HttpSession这一形参
随后在方法中就可以直接调用session对象的setAttribute()方法,保存数据
@RequestMapping("/testSession")
public String testSession(HttpSession session){
session.setAttribute("testSessionScope", "hello,session");
return "success";
}
七、向application域对象中保存数据
我们需要先在方法参数位置得到HttpSession对象,再调用它的getContext()方法得到application对象,再往application中保存数据
@RequestMapping("/testApplication")
public String testApplication(HttpSession session){
ServletContext application = session.getServletContext();
application.setAttribute("testApplicationScope", "hello,application");
return "success";
}
向域对象中保存了数据以后,我们就可以在jsp页面通过${}获取数据,或者在html页面通过thymeleaf获取域对象中的数据,进而显示到页面中了
而这一部分的内容主要是javaweb知识阶段的内容,不清楚的同学可以巩固一下javaweb
今天关于SpringMVC向域对象中保存数据就介绍到这啦,若对你有帮助的话就点个赞👍吧~
关注博主,宝藏多多~