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

来源:互联网 发布:fedora与ubuntu 编辑:程序博客网 时间:2024/06/10 20:39

在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域中找。

1 0
原创粉丝点击