emmm...最近投了一些简历..好像没啥反应...哎
今天就写下Model model, HttpServletRequest request/session, ModelMap modelMap之间的区别吧..
很多人如果使用了spring mvc 以后都有一个疑问.
httpServeltRequest和Model在传值给Jsp时的区别?
因为我们之前使用servlet给Jsp页面传值,基本都是request.setAttribute("name", "glj");//把值放到request里面或者是session..
但是spring mvc的controller中给jsp传值时使用model.addAttribute("name", "glj");
其实,如果你看了spring mvc的底层,你会发现,model数据最终还是写到HttpServletRequest属性中,只是model的写法更体现了MVC思想减少各层间耦合(个人总结思想,如果错误请留言我纠正...)
好了,下面我就写下他们之前的区别吧...
- 1.request.setAttribute("name","glj");//把值存到request
- 2.modelMap.addAttribute("name","glj");//把值存到modelMap
- 3.model.addAttribute("name","glj");//把值存到model
- 4.request.getSession.setAttribute("name","glj");//把值存到Session,这个是先获取了session,然后在存值到session
下面是在Jsp中获取值
- 1.request.getAttribute("name")/el表达式${requestScope.name}/${name}
- 2.${name}
- 3.${name}
- 4.request.getSession().getAttribute/el表达式${sessionScope.name}/${name}
最后..其实${name}对以上几种取值都适用的,只是优先级的区别罢了.
而Model和ModelMap都是一样的吧...只是二者谁最后赋值,谁的优先级就越高..然后才到request最后session...