SpingMVC:域对象共享数据

1.使用servletAPI向request域对象共享数据

    //使用servletAPI向request域对象共享数据
    @RequestMapping("/testRequestByServletApi")
    public String testRequestByServletApi(HttpServletRequest request){
        request.setAttribute("testRequest","hell");
        return "success";
    }

 html

//index.html
<a th:href="/testRequestByServletApi">测试原生servletAPI</a>
//success.html
<p th:text="${testRequest}"></p>

2.使用ModelAndView向request域对象共享数据

    //使用ModelAndViewxiangrequest域对象共享数据
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
     /**
    * ModelAndView有Model和View的功能
    * Model主要用于向请求域共享数据
    * View主要用于设置视图,实现页面跳转
    */
        ModelAndView mav = new ModelAndView();
        //处理模型数据,即向请求域request共享数据
        mav.addObject("testRequest","hello,ModelAndView");
        //设置视图名称
        mav.setViewName("success");
        return mav;
    }

html

//index.html 
<a th:href="@{testModelAndView}">通过ModelAndView向request中共享数据</a><br>
//success.html 
<p th:text="${testRequest}"></p>

 3.通过Model向request域中共享数据

    //使用model向request域中共享数据
    @RequestMapping("/testModel")
    public String model(Model model){
        model.addAttribute("testRequest","hello,model");
        return "success";
    }

html

//index.html 
<a th:href="@{testModel}">通过Model向request中共享数据</a><br>
//success.html 
<p th:text="${testRequest}"></p>

4.通过map向request域中共享数据

    @RequestMapping("/testMap")
    public String testMap(Map<String,Object> map){
        map.put("testRequest","hello,map");
        return "success";
    }

 5.通过map向request域中共享数据

    //使用ModelMap向request域对象共享数据
    @RequestMapping("/testMapModel")
    public String testMapModel(ModelMap modelMap){
        modelMap.addAttribute("testRequest","hell,modelMap");
        return "success";
    }

 6.Model,ModelMap和Map之间的关系

Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的

public interface Model{}
public class ModelMap extends LinkedHashMap<String, Object> {}
public class ExtendedModelMap extends ModelMap implements Model {}
public class BindingAwareModelMap extends ExtendedModelMap {}

7.通过ServletApi向session中共享数据

    //通过servletAPI向session域对象共享数据
    @RequestMapping("/testSession")
    public String testSession(HttpSession session){
        session.setAttribute("testSession","hello,session");
        return "success";
    }

html

//index.html
<a th:href="@{testSession}">通过servletAPI向session中共享数据</a><br>
//success.html
<p th:text="${session.testSession}"></p>

8.向application域共享数据

   //向Application域中共享对象
    @RequestMapping("/testApplication")
    public String testApplication(HttpSession httpSession){
        ServletContext application = httpSession.getServletContext();
        application.setAttribute("testApplication","hello,aplication");
        return "succes";
    }

html

//index.html 
<a th:href="@{testApplication}">向application中共享数据</a><br> //success.html 
<p th:text="${application.testApplication}"></p>

 

阅读剩余
THE END