SpringMVC不设置request.setAttribute也可以在jsp中的el表达式里取到值?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
el表达式的搜索顺序是,page, request, session, context
http://stackoverflow.com/questions/875024/how-does-el-search-for-an-attribute
springmvc里面有多种方式可以实现页面传参,比如modelAndVidew对象,modelMap对象等,网上这类的文章或者教程很多,不妨百度一下,以下这篇文章http://blog.csdn.net/wp1603710463/article/details/48248871估计能满足题主目前的需求了。
我感觉是,SpringMVC可能会连方法参数也自动在页面中访问得到。
检查一下是否有 session 级别的
article.id
可以使用分别使用如下的 el 表达式试一下:
${ session.article.id }
或者${ request.article.id }