`

控制台显示ParametersInterceptor setParameters 异常的解释

 
阅读更多
使用Struts2时,当打开DevMode,控制台经常会出现 ParametersInterceptor - [setParameters]: Unexpected Exception caught setting ... on ...: Error setting expression ... with value '[Ljava.lang.String;@18fa93'这种情况的异常提示,造成这种异常的原因其实很简单,如果package使用了ParameterIntercepter这个拦截器,OgnlValueStack会自动为Action中有set方法的属性赋值(如果用了modeldriven,同样也会为实体中有set方法的属性赋值),赋值时,OGNL会将此时值栈中的action当做当前节点(默认情况下在请求进入action之前,该action也会被放入值栈),然后访问它的成员属性的set方法,如果ognl的context中的参数在action中找不到对应的set方法,就会抛出OgnlException,最后我们在控制台就看到了这个异常信息。

其实这个异常对我们开发者而言,只是在开发阶段可以看见来作为调试参考,对程序运行没有什么影响,如果关闭DevMode,就看不到这个异常信息了
分享到:
评论
2 楼 fffddgx 2011-09-22  
不错。 
1 楼 YYSAM 2009-02-03  
Great! thx, dude:)

相关推荐

    Struts2源码分析之ParametersInterceptor拦截器

    接下来,关键的方法setParameters(action, stack, parameters)被调用,它负责将参数设置到Action或ValueStack。在这里,拦截器首先检查Action是否实现了ParameterNameAware接口。如果实现了,那么Action可以决定哪些...

    struts2 接收参数

    setParameters(invocation, parameters); return invocation.invoke(); } ``` 这里,`setParameters`方法负责将参数映射到Action对象,而`parametersProvider`可以根据不同的配置来提供参数,例如从请求或...

    struts2实现文件上传

    在实际应用中,我们还需要考虑文件大小限制、文件类型检查以及异常处理等问题,以确保文件上传过程的安全性和可靠性。此外,如果需要处理多个文件上传,可以使用`FileItemIterator`迭代器来遍历所有上传的文件。 总...

    XWork绕过安全限制执行任意命令漏洞补丁

    action.getUser().getAddress().setCity("Bishkek") action.getUser().setFavoriteDrink("kumys") 这是通过ParametersInterceptor来执行的,使用用户提供的HTTP参数调用ValueStack.setValue()。 除了获取和设置...

    struts2_工作流程

    下面将详细解释这些概念及其在工作流程中的作用。 1. **Servlet容器接收HTTP请求并传递给Struts2的过滤器**:当一个HTTP请求到达服务器,Servlet容器(如Tomcat)首先接收到请求。在Web应用的配置中,Struts2通过`...

    Struts2默认拦截器解析[归类].pdf

    16. **ParametersInterceptor** - 参数拦截器:处理请求参数,将它们设置到Action的属性中。 17. **PrepareInterceptor** - 准备拦截器:在Action执行之前,初始化Action的属性。 18. **...

    STRUTS2类型转换

    当ParametersInterceptor的配置中#CREATE_NULL_OBJECTS参数为true时,如果OGNL表达式遇到空指针异常,框架会尝试创建一个新的对象来避免空指针异常,这在处理复杂的对象结构时非常有用。 总的来说,Struts2的类型...

    Struts 2.3.20升级日志

    此外,ParametersInterceptor 默认情况下现在支持中文哈希键,这对于处理中文参数的场景来说是一个巨大的改进。同时,themes.properties 文件的加载机制也得到了优化,现在允许放在 `WEB-INF` 目录下或者类路径中的...

    struts拦截器介绍

    9. **ExceptionInterceptor**:异常拦截器,将捕获的异常定向到特定页面显示。 10. **File UploadInterceptor**:文件上传拦截器,提供文件上传功能,处理多部分表单数据。 11. **I18nInterceptor**:国际化拦截器...

    Struts2串讲

    <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor" /> <!-- 内置 --> ...

    struts框架-文件上传下载

    此外,还可以使用Struts2的`ParametersInterceptor`拦截器来处理文件上传。 二、文件下载 1. 创建下载服务:在Struts框架中,通常通过一个Action来提供文件下载服务。Action需要根据请求参数找到待下载文件的路径...

    struts2 配置文件的问题

    <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> ... ... ``` `defaultStack`是Struts2预定义的拦截器栈,包含了基本的拦截器配置。 此外,标签中...

    struts2自定义类型转换器

    这两个接口提供了处理转换异常和执行实际转换的方法。下面是一个简单的示例: ```java public class CoordinateConverter implements Converter { @Override public Object convertValue(Map context, Object ...

    struts2中action接收参数的方式

    在源码层面,Struts2的`ParametersInterceptor`拦截器是处理参数映射的关键。当请求到达Action时,该拦截器会检查Action方法的参数,并根据参数类型和名字从请求中获取对应的值。对于复杂类型的参数,如List或Map,...

    struts解析json

    <interceptor name="json" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> *" class="com.example.YourAction"> ``` 2. **Action类的属性**:确保Action类中有对应的属性...

    Struts2和Webwork远程命令执行漏洞分析1

    该漏洞发生在Struts2的ParametersInterceptor(参数拦截器)和OGNL表达式的解析过程中。 首先,当用户提交的数据中包含`\u0023`(即字符#)时,由于Java字符串处理机制,`\u0023`在内存中会被转义为`#`。然而,...

    struts2文件上传下载

    <interceptor name="params" class="org.apache.struts2.interceptor.ParametersInterceptor"/> <param name="maximumSize">2097152</param> <!-- 2MB限制 --> <result name="success">success...

    STRUTS+AJAX+JSP 请求到后台乱码问题解决方法

    <interceptor name="encoding" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"> <param name="encoding">UTF-8 <!-- 其他interceptor配置 --> <!-- 将encoding interceptor添加到默认...

    Struts2单文件与多文件上传

    <interceptor name="params" class="org.apache.struts2.interceptor.ParametersInterceptor"/> <!-- ... --> <param name="excludeParams">dojo\..*,^struts\..* <!-- ... --> ``` 3. **Action类...

Global site tag (gtag.js) - Google Analytics