在使用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;
@Override
public AssetsList getModel() {
return entity;
}
<s:iterator value="extendList" id="extend" status="status">
<tr>
<td class="asset_frm_label">${extend.extendcname}</td>
<td>
<s:textfield id="%{#extend.extendtypevalue}"
name="extendList[%{#status.index}].extendvalue" size="15"
cssClass="k-textbox" value="%{#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 class="asset_frm_label">${extend.extendcname}</td>
<td>
<s:textfield id="%{#extend.extendtypevalue}"
name="entity.extendList[%{#status.index}].extendvalue" size="15"
cssClass="k-textbox" value="%{#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呢?有待解答。
分享到:
相关推荐
标题 "ognl.MethodFailedException" 指的是在使用OGNL(Object-Graph Navigation Language)表达式语言时遇到的方法执行失败异常。OGNL是一种强大的表达式语言,常用于Java应用程序,特别是Spring MVC和Struts 2框架...
camel-ognl-1.6.4.jar, camel-ognl-2.8.1.jar, com.springsource.org.ognl-2.6.9.jar, com.springsource.org.ognl-sources-2.6.9.jar, ognl-2.5.1.jar, ognl-2.6.11.jar, ognl-2.6.3.jar, ognl-2.6.5.jar, ognl-...
**OGNL(Object-Graph Navigation Language)**是一种强大的表达式语言,主要用于获取和设置Java对象的属性。在Java开发中,尤其是Web应用框架如Struts2和Hibernate中,OGNL被广泛使用。它允许开发者以简洁的方式...
ognl.jar ognl.jar
描述中的“解开后才可用,再与去ECLIPSE中ATTACH SOURCE关联”意味着为了充分利用这个库,你需要首先解压下载的“ognl.rar”文件,这通常是一个压缩格式,包含“ognl.jar”文件和其他可能的资源或文档。解压缩后,你...
标题中的“ognl-3.0.21.jar”和“ognl.jar”是指OGNL(Object-Graph Navigation Language)的特定版本库文件。OGNL是一种强大的表达式语言,广泛用于Java应用程序,尤其是Web开发框架如Struts 2中,用于在模型、视图...
赠送jar包:ognl-3.2.21.jar; 赠送原API文档:ognl-3.2.21-javadoc.jar; 赠送源代码:ognl-3.2.21-sources.jar; 赠送Maven依赖信息文件:ognl-3.2.21.pom; 包含翻译后的API文档:ognl-3.2.21-javadoc-API文档-...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它是Apache Struts2框架的核心组成部分,也被许多其他Java应用和框架广泛使用,如Spring WebFlow。在Java世界中,...
在使用MyBatis-Plus 3.1.1版本时,如果你尝试使用Lambda表达式进行查询操作,可能会遇到一个常见的错误,导致程序无法正常运行。本文将深入探讨这个问题,并提供解决方案。 首先,让我们分析错误信息。...
赠送jar包:ognl-3.1.12.jar; 赠送原API文档:ognl-3.1.12-javadoc.jar; 赠送源代码:ognl-3.1.12-sources.jar; 赠送Maven依赖信息文件:ognl-3.1.12.pom; 包含翻译后的API文档:ognl-3.1.12-javadoc-API文档-...
**ognl.zip 版本3.0.6** OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。在版本3.0.6中,它提供了对Java对象图的灵活导航、动态方法调用以及数据绑定等功能。这...
同时,OGNL也支持链式访问和集合操作,例如`#{users[0].name}`可以获取集合中第一个用户的姓名。 下载OGNL的最新版本对于保持应用程序的兼容性和安全性非常重要。更新的版本通常包含性能改进和新功能,同时也修复了...
Struts2是一个流行的Java Web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。在Struts2中,OGNL(Object-Graph ...通过阅读提供的"Struts2 OGNL.htm"文件,你可以进一步学习OGNL的详细用法和示例。
第四章:Struts2中的OGNL.ppt详细探讨了Struts2框架中使用OGNL(Object-Graph Navigation Language,对象图导航语言)的关键概念和技术。OGNL作为一种强大的表达式语言,使得开发者能够方便地访问Action携带的数据,...
本篇文章将深入探讨Struts2中的OGNL.jar及其相关知识点。 首先,OGNL是Object-Graph Navigation Language的缩写,它是一种强大的表达式语言,允许程序员以简洁的语法访问和操作对象图。在Struts2中,OGNL用于处理...
"ognl.rar_OGNL API_og_ognl"这个标题暗示了压缩包中包含了OGNL的API文档、源码以及可能的相关开发工具。 **OGNL基础知识** 1. **OGNL简介**:OGNL提供了一种简洁的方式来表示复杂的对象图导航路径。它支持方法...
mybatisplus-plus对mybatisplus的一些功能补充:根据多个字段联合主键增删改查;优化分页插件实现在不分页时进行排序操作;自动填充优化功能 & 自动扫描Entity类构建ResultMap功能;ognl设置默认包名
ognl.jar包,struts2开发必备。用以支持OGNL表达式的。
本压缩包文件“Struts 2中的OGNL.rar”包含的PDF文档详细介绍了如何在Struts 2框架中使用OGNL。 OGNL是一种强大的表达式语言,它的主要功能是在Java对象图中导航并操作数据。在Struts 2中,OGNL被用来解析和构造...
ognl-2.7.3.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性。 struts2-core-2.1.8.jar:Struts 2框架的核心类库 xwork-core-2.1.6.jar:XWork类库,Struts 2在其上...