SpringMVC不设置request.setAttribute也可以在jsp中的el表达式里取到值?

灰度乌鸦 发布于 2016/07/06 18:45
阅读 2K+
收藏 0

SpringMVC两个控制器类,注解都相同,但是一个需要设置request.setAttribute才能在jsp中el表达式里取到值。
比如${anti.id}必须设置request.setAttribute才可以取到id值。
@RequestMapping("/anti_list/{pageNo}")
 public String list(HttpServletRequest request, AntiForgery anti, @PathVariable Integer pageNo) {
   request.setAttribute("anti", anti); // 只多了这一句不同
   logger.debug("anti_list");
   return "/msg/antiforgery_list";
 }


但是另一个没有设置request.setAttribute,但是也能在jsp中的el表达式里取到值。
比如${article.id}可以直接取到值。但并没有设置request.setAttribute。
@RequestMapping("/anti_list/{pageNo}")
 public String list(HttpServletRequest request, Article article, @PathVariable Integer pageNo) {
   logger.debug("article_list");
   return "/msg/article_list";
 }

两个方法分别在不同控制器类中,但是取值一个需要request.setAttribute设置,另一个不需要。这是为什么呢?

加载中
0
p2ng
p2ng
为什么不用springmvc自带的resultmap
0
丶Lion
丶Lion
的识图~~!!!!!
0
Mr_K
Mr_K
不可能!!!!!!如果你没设置 attrbute,那么你怎么会在request里取到值?看下 request.setAttribute属性吧~他都是 先set 在get···如果你没set 就能取到值,说明你通过别的方法设置过~~~
0
奥神Well
奥神Well
应该不会出现这个情况。还有一种情况就是使用springMVC的视图,通过springMVC的数据模型建立键-值对,在返回的页面中也能用EL表达式获取到。
0
_Mr_Right_
_Mr_Right_
难道session里面有一份?
0
anlen_gzz
anlen_gzz
找一个类实现接口WebRequestInterceptor,说不定能满足你的要求,不过原理也差不多一样
0
挨踢Lee
挨踢Lee
SpringMVC 用ModelMap传递控制方法处理数据到结果页面。
0
guo11235
guo11235
存储值 应该就是request 、session吧
0
厌恶自己
厌恶自己

对 我记得方法参数里面声明的变量 使用 el 表达式是可以直接取值的

0
阿信sxq
阿信sxq

结论就是你这两个都不对!!!!

请使用springmvc自带的ModelAndView,设置值和视图,然后就可以非常愉快的使用了

返回顶部
顶部