`

关于struts2表单自动封装数据时类型转换时 ongl setValue()报错的问题

 
阅读更多
报错
DEBUG [http-8080-1] OgnlValueStack.setValue(165) | Error setting value
ognl.MethodFailedException: Method "setXxx" failed for object cn.Xxx@f036de [java.lang.NoSuchMethodException: setXxx([Ljava.lang.String;)]
.....

/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: setXxx([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:810)
	at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)
	at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)
	at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
	at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
	at ognl.SimpleNode.setValue(SimpleNode.java:246)
	at ognl.ASTChain.setValueBody(ASTChain.java:172)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
	at ognl.SimpleNode.setValue(SimpleNode.java:246)
	at ognl.Ognl.setValue(Ognl.java:476)
        ......

一般由于属性名字不对,一般类型不对等原因不解释了。
特殊原因:
属性为 int value1;
页面如果传入后台的参数值是null(这里不管用什么方式传值,只要是不能把null转换为""),那么由于属性为原始类型int,那么就会包上面的错,如果你把int改为Integer则会报另外的错。
不细心很难发现,不要认为什么插件都会把null转化为“”。
分享到:
评论

相关推荐

    用UIAutomation封装了很多实用的方法

    根据UIAutomation封装了很多自定义方法 现在只需要实例化之后 直接调用方法即可完成。比如单击某个按钮,现在只需要直接调用ClickElement,非常实用。 ClickElement 单击指定的自动化元素 ...

    QT实现周立功CAN通信,自动接收数据

    1.使用周立功CAN二次开发库函数 2.资源中已经将库添加 3.包含相关函数介绍及用法

    QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

    Qt中QVariant是多种类型的联合,QVariant类中有个SetValue(T& value)方法,将自定义 T 类型的数据保存到QVariant对象中,可以理解为是自定义类型被封装成了QVariant的形式,这样,我们自定义的T类型的对象就能够通过...

    LigerUI框架 v1.3.2

    hidden(隐藏域)初始化的支持[优化]增加enabledCompleteCheckbox参数(是否启用半选择模式)[BUG]解决在firefox无法自动完成的问题[优化]解决 下拉框树 setValue 方法当值为0时不正常设置 的问题[BUG]解决在firefox无法...

    Registry类的SetValue和GetValue详解

    Registry类的SetValue和GetValue详解

    封装给java使用的 web插件报表

    这是个封装给java使用的 web插件报表,这个市面上已经存在,但是是个商业报表: 本人提供的是免费报表,不不敢与商家争长短,但求对你有用: 使用方法: 范例使用的是access数据库,首先在odbc 注册ReportDemo.mdb ...

    QSetting操作ini文件(包括增删改查),自己封装了QSetting类

    QSetting操作ini文件(包括增删改查),为了操作方便,自己封装了QSetting类。 写这类的原因的是每次操作QSettings的指针时候,用完都要delete指针,比较麻烦,可以使用类的析构函数自动删除。还有写入值的时候,...

    phpExcel二次封装简单调用备用留存

    phpExcel二次封装简单调用备用留存,$page_dates = "数据库数据" $title = array('序号1','序号2','序号3','序号4','序号5','头像'); //标题 $width = array('16','16','20','20','20','20'); //设置 $content = ...

    封装给java使用的 web插件报表(修正版本)

    这是个封装给java使用的 web插件报表,这个市场上已经存在,但是是个商业报表: 本人提供的是免费报表,不不敢与商家争长短,但系希望对你有用: 使用方法: 范例使用的是access数据库,首先在odbc 注册ReportDemo....

    DataTable和IList间转换的封装

    if (row != null) { obj = Activator.CreateInstance(); foreach (DataColumn column in row.Table.Columns) ... prop.SetValue(obj, value, null); } catch { // You can log something here throw; } } }

    C++数组模板封装

    C++数组模板封装,主要成员包括: public: Array(); Array(int size); Array(int size, T value); Array(Array<T> & other); Array(T * arr, int size); Array(int size, T* arr, int arrSize); ...

    IOS 简单传值工具类(HTPassValueTool)

    - 传递与获取数据时使用键值(KEY)作为取值的参数. 使用方法:1.设值:setValue(值, 键); 2.取值:getValue(键); 3.对象名或变量名转字符串充当KEY: NSString *varName = vs(对象或变量); 4.获取工具类单例:...

    封装给java使用的 web插件报表 (修正版本)

    这是个封装给java使用的 web插件报表,这个市场上已经存在,但是是个商业报表: 本人提供的是免费报表,不不敢与商家争长短,但系希望对你有用: 使用方法: 范例使用的是access数据库,首先在odbc 注册ReportDemo....

    很好用的单位转换类,长度单位转换类,速度单位转换类

    长度单位转换类,速度单位转换类 用法如下:KM转化为M Distance disTemp = new Distance(); disTemp.SetValue(DistanceUnit.KM, 1); double meter = disTemp.GetValue(DistanceUnit.Meter);

    IOS 简单传值工具类(HTPassValueTool) 编辑

    传递与获取数据时使用键值(KEY)作为取值的参数. 使用方法:1.设值:setValue(值, 键); 2.取值:getValue(键); 3.对象名或变量名转字符串充当KEY: NSString *varName = vs(对象或变量); 4.获取工具类单例:SHTPV ...

    老外写的表达式求值C++封装类,计算器源码

    老外写的表达式求值封装类,可计算三角函数,反三角函数,普通公式等等. 代码修改方便,很适合扩展. 支持参数重新赋值计算等等. 演示: #include "Express.h" #include "ExpValue.h" #include "VarValue.h" void main() ...

    纯C++封装ini配置文件的读写类(file wraper ).

    2. 支持无SECTION的 Key-value 读写. 3. 跨平台. 4. 可配置 "=" 两边需不需要空格等. 详情用法请见Test内容。 eg: CSimpleIniA ini; ini.SetUnicode(); SI_Error rc = ini.LoadFile("example.ini"); if (rc )...

    封装给java使用的 web报表 rm webrm 报表1.0.0.1版正式版

    //2:设置数据源名称以ocx使用,并把IRMDataSet实现的结果加入 public String CreateViewer();//3:生成在html页面的编码 } 具体的使用方法请参照 index.jsp 报表的使用方法请自己参照官方的文档 RM报表的设计请...

    封装给java使用的 web报表 rm webrm 报表1.0.0.1版,升级版

    //2:设置数据源名称以ocx使用,并把IRMDataSet实现的结果加入 public String CreateViewer();//3:生成在html页面的编码 } 具体的使用方法请参照 index.jsp 报表的使用方法请自己参照官方的文档 RMDesigner.exe...

    :white_check_mark:React表单状态管理和验证-React开发

    更好的React状态表单状态管理,其中数据状态直接映射到表单字段,因此表单只是该数据状态的表示形式和更改接口。 用法简介字段表单应用程序用于React的更好的表单状态管理,其中数据状态直接映射到表单字段,因此...

Global site tag (gtag.js) - Google Analytics