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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值