今天碰到一个很郁闷的问题,搞了好久,如题,
原因还是不熟悉struts2的内部运作机制,
分析:
给acton配置一个自定义拦截器后,此action就无法使用框架默认提个的拦截器栈了,这就导致了前后台数据传输这个问题,实际上框架提个的所有拦截器都无法使用了,
解决方法:
在配置自定义拦截器之前,要记得把框架提个的拦截器栈先配置一下,然后就一切正常了,样例配置如下:
<action name="cn.individualChangeAction" class="individualChangeAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="individualChangeInterceptor"/>
<result>/zh_cn/pages/IndividualChangeSuccess.jsp</result>
<result name="input">/zh_cn/pages/IndividualChange.jsp</result>
<result name="confirmation">/zh_cn/pages/IndividualChangeConfirmation.jsp</result>
<result name="failed">/zh_cn/pages/IndividualChangeFailure.jsp</result>
</action>
分享到:
相关推荐
Struts2是一个流行的Java web框架,它用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含...
当一个请求到达时,Struts 2会按照配置的拦截器顺序逐个调用这些拦截器的`preIntercept()`方法。如果所有拦截器都允许请求通过,那么Action将被调用。Action执行完毕后,Struts 2会反向遍历拦截器链,调用每个拦截...
- 配置文件中定义了框架的主要行为,如Action映射、拦截器、结果类型等。 - 通过`struts-config.xml`文件,可以灵活地控制Struts2的行为模式。 #### 三、Action与请求处理 ##### 1. **响应格式配置** - **Content...
然而,Struts2从2.1版本开始引入了拦截器注解,使得无需在配置文件中显式声明拦截器,就可以直接在Action类或方法上使用注解来应用拦截器。这种方式更简洁,减少了配置工作量,提高了代码可读性。 以下是几种常见的...
- 在`struts.xml`配置文件中,使用`<interceptors>`标签定义拦截器,`<interceptor>`子标签用于声明一个拦截器,`name`属性为拦截器的名称,`class`属性指定拦截器的完整类名。 - 使用`<interceptor-ref>`标签引用...
**Struts2 拦截器**是在Action执行前后插入的代码片段,它们按照定义的顺序组成一个拦截器链。每个拦截器都有机会处理请求,决定是否允许Action执行,以及如何处理Action的返回结果。拦截器可以用于数据校验、登录...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...
在Struts2的配置文件中,可以通过`<interceptor-stack>`标签定义拦截器栈,然后在`<action>`标签中引用这些拦截器栈。 例如: ```xml <param name="excludeParams">dojo\..*,^struts\..* ``` ...
2. **注册拦截器**:在`struts-config.xml`配置文件中,通过`<interceptors>`标签定义拦截器栈,然后通过`<action>`标签的`interceptor-ref`属性引用拦截器栈。 3. **配置拦截器栈**:在`struts-config.xml`中,...
3. 拦截器链开始执行,其中的ParameterInterceptor负责将请求参数绑定到Action实例的属性上,使用OGNL(Object-Graph Navigation Language)表达式解析和设置属性。 4. 如果有自定义的验证拦截器,会在这个阶段执行...
如果返回`true`,则继续执行下一个拦截器直至Action,Action执行完毕后按相反顺序执行返回的拦截器。 2. **Struts2内置拦截器详解**: - **AliasInterceptor**:允许给Action配置多个别名,方便重定向和链接。 -...
Struts拦截器是Java Web开发中的一个重要概念,尤其在基于Struts2框架的应用中,它扮演着处理请求、验证输入、记录日志等关键角色。在这个"Struts拦截器案例——登陆"中,我们将深入探讨如何利用Struts拦截器实现...
- **定义拦截器栈**:可以将多个拦截器组合起来,形成一个拦截器栈。 ```xml 拦截器栈名"> 拦截器名一"> 参数名一">参数值一 参数名二">参数值二 拦截器名二" /> ``` - **使用拦截器**:在具体的Action...
综上所述,"应用Struts2处理表单数据"这个主题涵盖了Struts2框架中的诸多关键概念,包括Action设计、表单数据绑定、结果处理、拦截器、配置、表达式语言以及验证和异常处理机制。这些知识点对于理解和开发基于Struts...
- **用途**:当请求参数类型与Action属性不匹配时,会触发此拦截器,帮助开发者捕获转换异常,并通过`ActionContext`获取具体的转换错误信息。 5. **Create Session (创建会话)** - **功能**:自动为每个请求...
在Action类中,我们需要定义一个表示“无权限”的结果,这样当拦截器返回这个结果时,Struts2会根据配置跳转到相应的页面。例如: ```java public class LoginAction { // ... public String execute() { // ....
在Struts2中,拦截器是一种非常重要的机制,它可以在Action执行前后进行一些预处理或后处理操作,比如验证、设置请求参数等。 #### 二、拦截器简介 拦截器可以看作是一种过滤器,它能够对用户的请求进行拦截,并在...
在Struts2中,你可以直接在Action类中声明与表单字段相对应的属性,Struts2的自动数据绑定机制会将表单参数映射到这些属性。例如,如果表单有字段`name`和`email`,Action类可以如下所示: ```java public class ...
5. 配置拦截器:在struts.xml配置文件中,通过`<interceptors>`和`<interceptor>`标签定义拦截器,使用`<action>`标签的`interceptor-ref`属性引用拦截器栈。可以使用`<default-interceptor-ref>`为所有动作设置默认...
"Struts2InAction.war"可能包含了书中的所有示例代码,覆盖了各种主题,包括Action、拦截器、结果类型、OGNL表达式、表单验证、国际化等。通过阅读和运行这些代码,开发者可以更直观地了解Struts2的运作方式和实际...