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这个属性,也不会报错.
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这个属性,也不会报错.