ERROR ParametersInterceptor:204 - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'oper' on 'class nbpt.ts.manager.system.web.user.LinkUserAction: Error setting expression 'oper' with value '[Ljava.lang.String;@ecde2b'
今天继续整人家的遗留系统,然后发现很多ParametersInterceptor 这样的错误,自己以前学Struts2的时候也遇到过,这个错误就是在Action里没有页面request传来的相关字段所造成的,但这个遗留系统到处都是这样的错误,哎!......
分享到:
相关推荐
本文将深入解析ParametersInterceptor的工作原理及其源码。 首先,ParametersInterceptor的核心功能在于将ActionContext中的请求参数映射到ValueStack或Action实例上。在ActionInvocation的doIntercept方法中,拦截...
- **ParametersInterceptor**:将请求参数绑定到Action。 - **ActionMappingParametersInterceptor**:处理Action元素中的参数。 - **PrepareInterceptor**:如果Action实现了Preparable接口,调用prepare方法。 - *...
为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值: #_memberAccess['...
<interceptor name="params" class="org.apache.struts2.interceptor.ParametersInterceptor"/> <param name="maximumSize">2097152</param> <!-- 2MB限制 --> <result name="success">success...
16. **ParametersInterceptor**:参数拦截器,将HTTP请求中的参数设置到Action中。 17. **PrepareInterceptor**:准备拦截器,如果Action实现了Preparable接口,它会调用Action的prepare方法进行预先处理。 18. **...
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> ... ... ``` `defaultStack`是Struts2预定义的拦截器栈,包含了基本的拦截器配置。 此外,标签中...
16. **ParametersInterceptor** - 参数拦截器:处理请求参数,将它们设置到Action的属性中。 17. **PrepareInterceptor** - 准备拦截器:在Action执行之前,初始化Action的属性。 18. **...
Struts2使用`ParametersInterceptor`来处理请求参数,包括类型转换。自定义类型转换器可以通过注册自定义转换器来实现更灵活的数据转换。 以上是对给定文件中问题的详细解析,涵盖了Struts2框架的基础知识、配置、...
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> <!-- 省略了其他的Interceptor的定义 --> <!-- Basic stack --> ...
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor" /> <!-- 内置 --> ...
- **内置拦截器**:Struts2提供了一系列内置的拦截器,如ParametersInterceptor、ValidationInterceptor等。 - **自定义拦截器**:开发者也可以根据需求编写自定义的拦截器。 ##### 3.3 值栈与OGNL - **值栈**:...
当请求到达时,Struts2的ParametersInterceptor会自动将请求参数填充到Action类的相应属性中。此外,Struts2支持动态方法调用,即通过参数来决定执行哪个execute方法,这使得Action类可以更加灵活。 接下来,我们...
此外,还可以使用Struts2的`ParametersInterceptor`拦截器来处理文件上传。 二、文件下载 1. 创建下载服务:在Struts框架中,通常通过一个Action来提供文件下载服务。Action需要根据请求参数找到待下载文件的路径...
接下来,我们需要配置Struts2的配置文件(struts.xml或struts-default.xml),注册我们的动作类并启用`ParametersInterceptor`,以处理表单参数: ```xml ...
<interceptor name="json" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> *" class="com.example.YourAction"> ``` 2. **Action类的属性**:确保Action类中有对应的属性...
在源码层面,Struts2的`ParametersInterceptor`拦截器是处理参数映射的关键。当请求到达Action时,该拦截器会检查Action方法的参数,并根据参数类型和名字从请求中获取对应的值。对于复杂类型的参数,如List或Map,...
<interceptor name="params" class="org.apache.struts2.interceptor.ParametersInterceptor"/> <!-- ... --> <param name="excludeParams">dojo\..*,^struts\..* <!-- ... --> ``` 3. **Action类...
- **ParametersInterceptor**和**StaticParametersInterceptor**:用于处理请求参数。 - **ChainingInterceptor**:用于支持动作链的执行。 - **ModelDrivenInterceptor**:用于支持基于模型的Action。 - **...
该漏洞发生在Struts2的ParametersInterceptor(参数拦截器)和OGNL表达式的解析过程中。 首先,当用户提交的数据中包含`\u0023`(即字符#)时,由于Java字符串处理机制,`\u0023`在内存中会被转义为`#`。然而,...