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

发布于 2022-09-03 01:14:29 字数 806 浏览 21 评论 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设置,另一个不需要。这是为什么呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

追我者格杀勿论 2022-09-10 01:14:29

el表达式的搜索顺序是,page, request, session, context
http://stackoverflow.com/questions/875024/how-does-el-search-for-an-attribute

痞味浪人 2022-09-10 01:14:29

springmvc里面有多种方式可以实现页面传参,比如modelAndVidew对象,modelMap对象等,网上这类的文章或者教程很多,不妨百度一下,以下这篇文章http://blog.csdn.net/wp1603710463/article/details/48248871估计能满足题主目前的需求了。

梦里人 2022-09-10 01:14:29

我感觉是,SpringMVC可能会连方法参数也自动在页面中访问得到。

夜深人未静 2022-09-10 01:14:29

检查一下是否有 session 级别的 article.id

可以使用分别使用如下的 el 表达式试一下:

${ session.article.id } 或者 ${ request.article.id }

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文