source is null for getProperty(null, "2")

WARN OgnlValueStack - Error setting value
ognl.OgnlException
source is null for getProperty(null, "2")


这个错误是这样产生的
页面有有个list 迭代出明细 ,明细中有下面这个textfield

<s:textfield name="erpPurchasePlandetailList[%{#st.index}].goodinfo.danwei" value="%{goodinfo.danwei}"/>

这个textfield显示的内容不需要在Action中获得,只是在前台显示,所以我的Action里并没有erpPurchasePlandetailList这个属性,于是一提交到Action就报错了

解决方案:将s:textfield换成 s:property 就好了,因为只是显示

这样虽然解决了 但是我还不明白错误的真正原因,因为如果我将上面textfield的name属性换一个 例如直接写成danwei 这个属性在Action里也没有,就不会报错.这是为什么呢

后来又分析了下可能是如下原因

Action里并没有erpPurchasePlandetailList这个属性,一提交到Action,Struts会自动给首先erpPurchasePlandetailList[%{#st.index}].goodinfo.danwei赋值,它首先找的是erpPurchasePlandetailList,而erpPurchasePlandetailList为null就会报错.
而如果textfield 的 name 仅仅是属性danwei,不带erpPurchasePlandetailList,即使action中没有danwei这个属性,也不会报错.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值