首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

ognl.OgnlException: source is null for getProperty(null, "零")

2013-12-11 
ognl.OgnlException: source is null for getProperty(null, 0)在使用struts2 提交表单时出现Error sett

ognl.OgnlException: source is null for getProperty(null, "0")
在使用struts2 提交表单时出现Error setting expression 'extendList[2].extendtypevalue' with value '[Ljava.lang.String;@7ac9a7'
ognl.OgnlException: source is null for getProperty(null, "0")异常,但后台extend.extendtypevalue却有值,而且表单界面也能读出值。

private AssetsList entity;@Overridepublic AssetsList getModel() {return entity;}


<s:iterator value="extendList" id="extend" status="status"><tr><td size="15" cssvalue="%{#extend.extendvalue}"/><s:hidden id="assetId_%{#status.index}" name="extendList[%{#status.index}].assetId" value="%{#extend.assetId}" /><s:hidden id="extendtypevalue_%{#status.index}" name="extendList[%{#status.index}].extendtypevalue" value="%{#extend.extendtypevalue}" /><s:hidden id="extendId_%{#status.index}" name="extendList[%{#status.index}].extendId" value="%{#extend.extendId}" /></td></tr></s:iterator>

原因:Action里没有extendList,extendList是entity里的属性,struts在自动装载时找不到extendList,所以才报null错。那么在表单相应的地方添加entity.就可以来。
修改后
<s:iterator value="entity.extendList" id="extend" status="status"><tr><td size="15" cssvalue="%{#extend.extendvalue}"/><s:hidden id="assetId_%{#status.index}" name="entity.extendList[%{#status.index}].assetId" value="%{#extend.assetId}" /><s:hidden id="extendtypevalue_%{#status.index}" name="entity.extendList[%{#status.index}].extendtypevalue" value="%{#extend.extendtypevalue}" /><s:hidden id="extendId_%{#status.index}" name="entity.extendList[%{#status.index}].extendId" value="%{#extend.extendId}" /></td></tr></s:iterator>

疑问:未修改前,为何读取表单界面时可以读取到extendList和提交表单Action的entity.extendList.extendvalue有修改后的值?
猜测:有可能,struts先在Action查找extendList属性,找不到时再去getModel返回的对象entity查找,找到了再进行装载。但为何在entity里找到了还有包null呢?有待解答。

热点排行