struts2 ognl 异常 InstantiatingNullHandler

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ERROR

[com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler]-Could not create and/or set value back on to object

引用

struts2类型转换异常时错误信息屏蔽

2011-05-2416:29

类型转换异常导致转换方法没有正常返回,fieldError中添加了相应的错误记录,系统打印出改异常,级别为warm。我认为不算是struts2的bug.转换异常抛出警告很正常。如想屏蔽可用logger4j配置级别到error即可

ognl.MethodFailedException:Method"setLoc"failed for object

tjx.HelloWorld@651e95[ng.NoSuchMethodException:

tjx.HelloWorld.setLoc([ng.String;)]

at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285) at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)

at

ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccesso r.java:85)

at

ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:16 2)

at

com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(Ob jectAccessor.java:27)

at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)

at

poundRootAccessor.setPr operty(CompoundRootAccessor.java:77)

at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)

at ognl.ASTProperty.setValueBody(ASTProperty.java:127)

at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)

at ognl.SimpleNode.setValue(SimpleNode.java:301)

at ognl.Ognl.setValue(Ognl.java:737)

另一种解决方式,自己捕获异常,并在异常处理代码中添加filderror:

if(context!=null&&

(Boolean.TRUE.equals(context.get(XWorkConverter.REPORT_CONVERSI ON_ERRORS)))){

String realProperty="loc";//这要转换属性名称

String fullName=(String)

context.get(XWorkConverter.CONVERSION_PROPERTY_FULLNAME);

if(fullName!=null){

realProperty=fullName;

}

MapconversionErrors=(Map)context.get(ActionContext.CONVERSION_ERRORS);

if(conversionErrors==null){

conversionErrors=new HashMap();

context.put(ActionContext.CONVERSION_ERRORS, conversionErrors);

}

conversionErrors.put(realProperty,value);

}

return null;

引用

struts2.x严重:Could not create and/or set value back on to object

2010-03-1709:02

在用struts2.1提交表单时发生以下错误:

2010-3-178:51:08

com.opensymphony.xwork2.util.logging.jdk.JdkLogger error

严重:Could not create and/or set value back on to object

ng.InstantiationException:com.model.GuestInfo

at ng.Class.newInstance0(Unknown Source)

at ng.Class.newInstance(Unknown Source)

....

原因:经过分析,是因为在表单提交的时候,action并没有创建表单对应的实例。

因为用人在写表单对应的类时,写了一个带有参数的构造方法,而在action中只是定义了这个类,没有实现。

解决方法:方法1、在表单对应的类中,再建个什么也不做的构造方法,即不带有参数和方法的构造方法。

方法2、在action中,new出表单对应的类。

本人用第一种方法。

相关文档
最新文档