问题描述:

在 Struts2 里面,当页面向服务器提交参数时报ognl.MethodFailedException:和java.lang.NoSuchMethodException:异常

异常信息 

Error setting expression 'itemList[0].menge ' with value '[Ljava.lang.String;@195575f'
ognl.MethodFailedException: Method "setMenge" failed for object PartOrderItem [id=null, menge=null, partLgort=null, partOrder=null] [java.lang.NoSuchMethodException: com.ns.extra.bean.PartOrderItem.setMenge([Ljava.lang.String;)]
 at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1265)
 at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1454)
 at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
 at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
 at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
 at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
 at ognl.SimpleNode.setValue(SimpleNode.java:301)
 at ognl.ASTChain.setValueBody(ASTChain.java:227)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
 at ognl.SimpleNode.setValue(SimpleNode.java:301)
 at ognl.Ognl.setValue(Ognl.java:737)
 at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)

Caused by: java.lang.NoSuchMethodException: com.ns.extra.bean.PartOrderItem.setMenge([Ljava.lang.String;)
 at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1206)
 ... 65 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: com.ns.extra.bean.PartOrderItem.setMenge([Ljava.lang.String;)
 at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1206)
 at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1454)
 at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)

注: menge是 PartOrderItem类的一个属性字段 ,int类型 . 。

问题原因:是数据的类型不对

解决办法:

1、将 menge的类型修改为 Integer类型 ( 包装类型 ) ,并且 getter , setter 方法的返回类型和参数类型都要修改成 Integer类型。即可解决此问题。

还有,如果你要传递的参数时 Struts2 的 Action 的属性对象的子属性,最好也改成 包装 类型,不然会报同样的错误。

2、在请求地址的参数中  http://127.0.0.1:8080/newEbarcode/partOrder!savePartOrder.action?bean.vbeln=25425&bean.name=hgjhg&bean.mark=hgfjhgfh&itemList[0].partLgort.matnr =354&itemList[0].menge = 0&itemList[0].partLgort.lgort =354355&itemList[0].partLgort.describe =    参数名后面切记不可加空格(String类型除外),否则也汇报这个错

建议: 只要从页面传递的参数是 Struts2 的 Action 的属性或者属性对象的子属性,都把它们的类型从原始类型 (int,float,double) 修改改成包装类型 (Integer,Float,Double) ,当然它们的 setter 和 getter 方法的参数和返回值也要修改成包装类型,这样就可以避免不必要的此类异常。

在Struts2中ognl.MethodFailedExceptiond异常的解决办法的更多相关文章

  1. Tomcat异常及解决办法——持续更新中

    公司项目,开发语言为java,中间件为Tomcat,运行过程中,从Tomcat出现了一些异常,现将异常及解决办法记录如下,仅供参考.(不断在补充中.......) 异常一: 1.日志内容 org.ap ...

  2. hadoop安装遇到的各种异常及解决办法

    hadoop安装遇到的各种异常及解决办法 异常一: 2014-03-13 11:10:23,665 INFO org.apache.hadoop.ipc.Client: Retrying connec ...

  3. Address already in use: JVM_Bind:80 异常的解决办法

    java.net.BindException: Address already in use: JVM_Bind:80 异常的解决办法 今天遇见了这个端口被占用问题 然后各种百度 先是说 用命令 ne ...

  4. IIS 常见异常及解决办法

    Ø  简介 IIS 是我们平常接触比较多的服务端软件,用于站点发布等,本文主要记录 IIS 常见的异常及解决办法.主要包括: 1.   Visual Studio 启动 Web 项目提示"无 ...

  5. Android 常见异常及解决办法

    Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1.   java.lang.NullPointerException: Attempt to i ...

  6. iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】

    在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...

  7. org/apache/commons/pool/impl/GenericObjectPool异常的解决办法

    org/apache/commons/pool/impl/GenericObjectPool异常的解决办法 webwork+spring+hibernate框架的集成, 一启动Tomcat服务器就出了 ...

  8. 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法

    关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法 题设: 经常使用FusionCharts图表的朋友可能会遇到这个问题.就是在FusionCharts显示的时候有时候 ...

  9. MyEclipse代码编辑器中汉字太小的解决办法(中文看不清)

    问题描述:新安装的myeclipse 2014,代码编辑器中汉字很小看不清 解决办法:调整字体即可.通过菜单Windows——Preferences,输入font过滤选择Colors and Font ...

随机推荐

  1. vsCode scss安装

    点击在settings.json中编辑写入代码: { /** Easy Sass 插件 **/ "easysass.formats": [ { "format" ...

  2. JAVA基础——异常--解析

      简介 异常处理是java语言的重要特性之一,<Three Rules for effective Exception Handling>一文中是这么解释的:它主要帮助我们在debug的 ...

  3. springboot的jsp热部署

    使用springboot每次修改jsp都需要重新启动是不是很麻烦呢?以下是解决办法! yml格式 server: servlet: jsp: init-parameters: development: ...

  4. Linux学习笔记(二) 文件管理

    了解 Linux 系统基本的文件管理命令可以帮助我们更好的使用 Linux 系统,以下介绍几个常用的文件管理命令 1.pwd pwd 是 Print Working Directory 的简写,用于显 ...

  5. js之循环语句

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Boundary Conditions

    test test Table of Contents 1. Boundary conditions 1.1. Neumann boudary condition vs Dirichlet BC 1. ...

  7. 3.2.1.1 POSIX方括号表达式

        为配合非英语的环境,POSIX 标准强化其字符集范围的能力(例如,[a-z]),以匹配非英文字母字符.       POSIX 也在一般术语上作了些变动,我们早先看到的范围表达式在 UNIX  ...

  8. JavaSE 学习笔记之Jdk5.0新特性(十九)

    Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...

  9. POJ 2217 Secretary

    Secretary Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID:  ...

  10. COJ 1351 Tree Counting 动态规划

    题目大意是: 给定一个n,k,表示树上共有n个节点,每个节点最多有k个叶子,问一共多少种摆法,答案对1000000007取模 这里定义一个dp[i]表示 i 个节点对应有多少种方法 f[i][j] 表 ...