`

struts2 ognl 异常

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

引用

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

ognl.MethodFailedException: Method "setLoc" failed for object tjx.HelloWorld@651e95 [java.lang.NoSuchMethodException: tjx.HelloWorld.setLoc([Ljava.lang.String;)]
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
    at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
    at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
    at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
    at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
    at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
    at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(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_CONVERSION_ERRORS)))) {
                   String realProperty = "loc";  //这要转换属性名称
                   String fullName = (String) context.get(XWorkConverter.CONVERSION_PROPERTY_FULLNAME);

                   if (fullName != null) {
                       realProperty = fullName;
                   }

                   Map<String, Object> conversionErrors = (Map<String, Object>) context.get(ActionContext.CONVERSION_ERRORS);

                   if (conversionErrors == null) {
                       conversionErrors = new HashMap<String, Object>();
                       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-17 09:02
在用struts2.1提交表单时发生以下错误:

   2010-3-17 8:51:08 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error
严重: Could not create and/or set value back on to object
java.lang.InstantiationException: com.model.GuestInfo
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)

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

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

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

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

本人用第一种方法。




分享到:
评论
1 楼 smilea001 2013-09-01  
为什么我两种方法都用了 ,还是不行

相关推荐

    Struts2_OGNL

    在掌握Struts2和OGNL的基础上,开发者可以进一步学习Struts2的其他组件和特性,如标签库、异常处理、国际化支持、拦截器机制、输入校验、文件上传和下载等,这些都是构建复杂Web应用不可或缺的组件和功能。

    Struts2 使用OGNL表达式

    8. **异常处理**:当OGNL表达式无法解析时,Struts2会抛出相应的异常,如`ValueExpressionException`,帮助开发者找出问题所在。 9. **OGNL在视图层的应用**:在JSP或其他视图技术中,可以通过OGNL表达式动态地显示...

    ognl.rar_OGNL API_struts2 ognl api_struts2帮助文档

    OGNL(Object-Graph Navigation Language)是Struts2框架中重要的表达式语言,它用于在应用程序中进行数据绑定和表达式求值。这篇文档将详细解释OGNL API及其在Struts2框架中的应用。 首先,OGNL是一个强大的、动态...

    struts2 ognl

    5. **异常处理**:当发生异常时,Struts2允许使用OGNL表达式来决定如何处理异常,如定义错误页面或返回特定的结果代码。 以下是一个简单的Struts2 OGNL示例: ```xml &lt;!-- Struts2配置文件 --&gt; &lt;struts&gt; ...

    struts2-OGNL表达式测试

    6. **异常处理**:在Struts2的拦截器中,可以使用OGNL处理异常,例如`&lt;result type="tiles"&gt;error&lt;/result&gt;&lt;exception-mapping exception="java.lang.Throwable" result="error" /&gt;`,当发生异常时,会跳转到错误...

    struts2中异常处理(demo)

    5. **错误和消息展示**:Struts2允许将错误信息存储在ValueStack中,通过OGNL表达式在视图层展示。例如,使用`fieldErrors`和`actionErrors`集合可以显示表单验证错误和全局错误信息。 6. **日志记录**:在处理异常...

    struts2 and ognl

    - **OGNL注入**:由于OGNL的强大功能,如果不加以限制,恶意用户可能利用OGNL表达式执行非法操作,因此Struts2在后期版本中增加了对OGNL表达式的安全控制。 5. **最佳实践**: - 使用拦截器进行数据校验和预处理...

    struts2中OGNL的一些概念及原理说明

    ### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...

    Struts2 的OGNL使用简介

    在Struts2中,OGNL(Object-Graph Navigation Language)是其默认表达式语言,用于数据绑定、属性访问以及控制流程。本篇文章将详细介绍Struts2中OGNL的使用,包括基本语法、表达式操作以及在实际开发中的应用。 ##...

    Struts2中的OGNL

    5. **异常处理**:Struts2的全局异常处理也可以使用OGNL表达式来指定错误页面。 **OGNL表达式实例** 1. **字段访问**:`#user.name` 会访问`user`对象的`name`属性。 2. **方法调用**:`#user.getUsername()` 调用`...

    struts2 相关原代码ognl xwork

    在Struts2框架中,OGNL(Object-Graph Navigation Language)是默认的表达式语言,用于数据绑定和页面表现层的交互。XWork则是Struts2的核心工作框架,它提供了动作(Action)执行、类型转换、异常处理等功能。 ...

    struts2详细讲解,JQuery,类型转换和OGNL

    例如,如果用户输入的年龄字符串无法转化为整数,Struts2会抛出异常,我们可以通过定制转换器来处理这种情况。 最后,我们来看一下OGNL(Object-Graph Navigation Language)。OGNL是Struts2中的核心表达式语言,...

    struts2.16+ognl2.61+xwork2.1源码.rar

    在Struts2中,OGNL被用作默认的表达式语言,负责处理Action属性到JSP页面之间的数据绑定以及用户输入的解析和设置。OGNL2.61是这个库的一个版本,可能会包含新的功能、性能改进和错误修复。 3. **XWork**: XWork是...

    最新 ognl-2.6.11+struts2-core-2[1].0.11+xwork-2.0.5源码

    XWork是Struts2的基础,它提供了一套Action管理机制,包括Action的生命周期管理、异常处理和事务管理等。XWork-2.0.5是Struts2的一个重要组成部分,它的许多功能被Struts2 Core继承并扩展。XWork的核心是...

    留言板留言板struts2留言板struts2

    9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一处理应用程序中抛出的异常,提高代码的可维护性。 10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包(properties文件...

    Struts2深入学习----OGNL表达式原理

    其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达式语言,用于数据绑定和表示层的数据操作。这篇深入学习的文章主要探讨了OGNL表达式的原理和使用。 首先,我们来理解一下OGNL是什么。OGNL是...

    K8 Struts2 Exp 20160516(Struts2综合漏洞利用工具)

    2. **Ognl注入**:Struts2使用OGNL(Object-Graph Navigation Language)表达式语言进行视图层与模型层的数据交互。不恰当的配置或过滤不足可能导致恶意用户输入的OGNL表达式被执行,从而实现远程代码执行。 **K8 ...

    struts2jar.zip

    10. **异常处理**:Struts2提供了一套完整的异常处理机制,可以自定义错误页面和异常处理器。 总的来说,"struts2jar.zip"压缩包是一个实用的学习资源,涵盖了从基础到进阶的Struts2知识,通过阅读提供的说明和实践...

    Struts2视频教程

    Struts2内置了对OGNL的支持,可以方便地在JSP页面中使用OGNL表达式获取模型数据。 - **标签库**:Struts2提供了丰富的标签库,可以帮助开发者快速构建表单和页面元素,提高开发效率。 - **拦截器**:拦截器是Struts2...

    struts2-Annotation

    Struts2是一个非常流行的Java Web框架,它极大地简化了创建MVC(模型-视图-控制器)架构的应用程序。在给定的“struts2-Annotation”主题中,重点是Struts2框架如何利用注解(Annotation)来增强其功能和简化配置。...

Global site tag (gtag.js) - Google Analytics