标签: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