SpringMVC作用域傳值幾種方式


 

一、SpringMVC 作用域傳值的幾種方式

   使用原生Servlet

    1.1 在 HandlerMethod 參數中添加作用域對象

        1.1.1 ServletContext不能在方法參數中獲取,只能在request中獲取

@Controller
public class DemoController {
        @RequestMapping("demo")
        public String demo(HttpServletResponse resp,HttpServletRequest req,HttpSession session){
            //Request
            req.setAttribute("request", "這是HttpServletRequest");
            //Session
            session.setAttribute("session","這是HttpSession");
            HttpSession session2=req.getSession();
            session2.setAttribute("session2","這是HttpSession22");
            //application
            ServletContext context = req.getServletContext();
            context.setAttribute("servletcontext","這是ServletContext");
            return "/index.jsp";
        }
}

  2  使用Map集合

    2.1 把map中內容放在 request 作用域中

    2.2 spring 會對map集合通過  spring中的 class org.springframework.validation.support.BindingAwareModelMap 進行實例化

        @RequestMapping("demo2")
        public String demo2(Map<String,Object> map){
            System.out.println(map.getClass());
            map.put("map","天使");
            return "/index.jsp";
        }


  index.jsp中
    map:::${requestScope.map} 進行獲取    (可以不使用requestScope)

  3 使用SpringMVC 中的Model接口

    3.1 本質還是 request作用域進行傳值,(Model存在的意義就是替換request)

    3.2 把內容最終放入到request作用域中 

        @RequestMapping("demo3")
        public String demo3(Model model){
            model.addAttribute("model","這是Model的值");
            return "/index.jsp";
        }

  index.jsp 中
  model:::${requestScope.model} 獲取

  4 使用SpringMVC中ModelAndView 類

        @RequestMapping("demo4")
        public ModelAndView demo4(){
            ModelAndView mac=new ModelAndView("/index.jsp");
            mac.addObject("mav","天使的ModelAnd view");
            return mac;
        }
index.jsp中
modelandview::${requestScope.mav}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM