码迷,mamicode.com
首页 > 其他好文 > 详细

struts2重写request的方法引发的问题!(加不加#号问题)

时间:2015-05-18 09:07:35      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:struts2

在Action中我们把jsp需要的数据放到指定的域中,但是在struts2中,你知道struts重写了request对象的getAttrbute()方法:

DepartmentAction类中:

技术分享

jsp显示页面中:

技术分享

我的疑惑是:

我在Action类中ActionContext.getContext().put("departmentList", departmentList);这里到底是放到了哪里,我们知道这里是放到的ActionContext的上下文中,

默认是放到了request域中了。

我从jsp中取departmentList.我们发现这里的

<s:iterator value="departmentList">
这行代码中没有加#号,这让我很疑惑。然后我就开始做实验,发现呢?加不加#页面显示都没有错误。这里我就更疑惑了,既然是放到了ActionContext的上下文,

那么就是map,就必须加#号。

通过我查阅资料:发现是struts2重写了request的getAttrbute方法。

#departmentList:这里就是从上下文中查找,默认查找request。而恰恰ActionContext.getContext().put("departmentList", departmentList);默认放的位置是request。因此

可以取到。

departmentList:不加#号,这里默认是先从值栈中找,找不到就去request中找。

#request.departmentList:这里就是从request域中找。

struts2重写request的方法引发的问题!(加不加#号问题)

标签:struts2

原文地址:http://blog.csdn.net/u014010769/article/details/45798425

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!