`
fuyou0104
  • 浏览: 45932 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Struts2 给action配置一个局部拦截器后,action属性无法获得表单参数

 
阅读更多
今天碰到一个很郁闷的问题,搞了好久,如题,
原因还是不熟悉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>
分享到:
评论
2 楼 icesugar 2011-10-29  
第二部分代码发错了,是这样写就正常了
<action name="login_login" class="com.scujcc.struts2.actions.LoginAction" method="login" >
     <result name="input">/index.jsp</result>
     <result name="login">/login.jsp</result>
</action>
<action name="login_*" class="com.scujcc.struts2.actions.LoginAction" method="{1}" >
     <result name="success">/getall.jsp</result>
     <result name="input">/index.jsp</result>
     <result name="login">/login.jsp</result>
     <interceptor-ref name="Authority">
           <param name="includeMethods">getall</param>
      </interceptor-ref>
</action>
1 楼 icesugar 2011-10-29  
<action name="login_*" class="com.scujcc.struts2.actions.LoginAction" method="{1}" >
            <result name="success">/getall.jsp</result>
            <result name="input">/index.jsp</result>
            <result name="login">/login.jsp</result>
            <interceptor-ref name="Authority">
                <param name="includeMethods">getall</param>
            </interceptor-ref>
        </action>


我这么写还是获取不到表单的信息,我在set方法里面加了个打印信息,居然不调用那个set方法。
<action name="login_login" class="com.scujcc.struts2.actions.LoginAction" method="login" >
            <result name="input">/index.jsp</result>
            <result name="login">/login.jsp</result>
            <interceptor-ref name="Authority">
                <param name="includeMethods">getall</param>
            </interceptor-ref>
        </action>
<action name="login_*" class="com.scujcc.struts2.actions.LoginAction" method="{1}" >
            <result name="success">/getall.jsp</result>
            <result name="input">/index.jsp</result>
            <result name="login">/login.jsp</result>
            <interceptor-ref name="Authority">
                <param name="includeMethods">getall</param>
            </interceptor-ref>
        </action>

我这么写就真长了,把login放在拦截器之外.但是我想写在里面,我就郁闷了不晓得哪儿错了。我写的拦截器只验证getall方法呢,

相关推荐

    struts2 使用action属性接收中文参数(post提交)

    Struts2是一个流行的Java web框架,它用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含...

    struts拦截器的例子

    当一个请求到达时,Struts 2会按照配置的拦截器顺序逐个调用这些拦截器的`preIntercept()`方法。如果所有拦截器都允许请求通过,那么Action将被调用。Action执行完毕后,Struts 2会反向遍历拦截器链,调用每个拦截...

    struts2参数配置

    - 配置文件中定义了框架的主要行为,如Action映射、拦截器、结果类型等。 - 通过`struts-config.xml`文件,可以灵活地控制Struts2的行为模式。 #### 三、Action与请求处理 ##### 1. **响应格式配置** - **Content...

    Struts2 拦截器注解(二十七)

    然而,Struts2从2.1版本开始引入了拦截器注解,使得无需在配置文件中显式声明拦截器,就可以直接在Action类或方法上使用注解来应用拦截器。这种方式更简洁,减少了配置工作量,提高了代码可读性。 以下是几种常见的...

    Struts2拦截器

    - 在`struts.xml`配置文件中,使用`&lt;interceptors&gt;`标签定义拦截器,`&lt;interceptor&gt;`子标签用于声明一个拦截器,`name`属性为拦截器的名称,`class`属性指定拦截器的完整类名。 - 使用`&lt;interceptor-ref&gt;`标签引用...

    struts2 拦截器(AOP,面向切面编程)

    **Struts2 拦截器**是在Action执行前后插入的代码片段,它们按照定义的顺序组成一个拦截器链。每个拦截器都有机会处理请求,决定是否允许Action执行,以及如何处理Action的返回结果。拦截器可以用于数据校验、登录...

    struts2类型转换 拦截器 校验的例子

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...

    struts2内置拦截器简介

    在Struts2的配置文件中,可以通过`&lt;interceptor-stack&gt;`标签定义拦截器栈,然后在`&lt;action&gt;`标签中引用这些拦截器栈。 例如: ```xml &lt;param name="excludeParams"&gt;dojo\..*,^struts\..* ``` ...

    struts1.2拦截器使用插件

    2. **注册拦截器**:在`struts-config.xml`配置文件中,通过`&lt;interceptors&gt;`标签定义拦截器栈,然后通过`&lt;action&gt;`标签的`interceptor-ref`属性引用拦截器栈。 3. **配置拦截器栈**:在`struts-config.xml`中,...

    struts1.x 和 struts2.x向Action里填充jsp参数原理

    3. 拦截器链开始执行,其中的ParameterInterceptor负责将请求参数绑定到Action实例的属性上,使用OGNL(Object-Graph Navigation Language)表达式解析和设置属性。 4. 如果有自定义的验证拦截器,会在这个阶段执行...

    Struts2拦截器及其用法详细说明

    如果返回`true`,则继续执行下一个拦截器直至Action,Action执行完毕后按相反顺序执行返回的拦截器。 2. **Struts2内置拦截器详解**: - **AliasInterceptor**:允许给Action配置多个别名,方便重定向和链接。 -...

    Struts拦截器案例——登陆

    Struts拦截器是Java Web开发中的一个重要概念,尤其在基于Struts2框架的应用中,它扮演着处理请求、验证输入、记录日志等关键角色。在这个"Struts拦截器案例——登陆"中,我们将深入探讨如何利用Struts拦截器实现...

    struts2拦截器

    - **定义拦截器栈**:可以将多个拦截器组合起来,形成一个拦截器栈。 ```xml 拦截器栈名"&gt; 拦截器名一"&gt; 参数名一"&gt;参数值一 参数名二"&gt;参数值二 拦截器名二" /&gt; ``` - **使用拦截器**:在具体的Action...

    应用Struts2处理表单数据

    综上所述,"应用Struts2处理表单数据"这个主题涵盖了Struts2框架中的诸多关键概念,包括Action设计、表单数据绑定、结果处理、拦截器、配置、表达式语言以及验证和异常处理机制。这些知识点对于理解和开发基于Struts...

    Struts2内置拦截器简介

    - **用途**:当请求参数类型与Action属性不匹配时,会触发此拦截器,帮助开发者捕获转换异常,并通过`ActionContext`获取具体的转换错误信息。 5. **Create Session (创建会话)** - **功能**:自动为每个请求...

    struts2自定义拦截器

    在Action类中,我们需要定义一个表示“无权限”的结果,这样当拦截器返回这个结果时,Struts2会根据配置跳转到相应的页面。例如: ```java public class LoginAction { // ... public String execute() { // ....

    struts2拦截器的使用

    在Struts2中,拦截器是一种非常重要的机制,它可以在Action执行前后进行一些预处理或后处理操作,比如验证、设置请求参数等。 #### 二、拦截器简介 拦截器可以看作是一种过滤器,它能够对用户的请求进行拦截,并在...

    Struts2表单数据获取项目

    在Struts2中,你可以直接在Action类中声明与表单字段相对应的属性,Struts2的自动数据绑定机制会将表单参数映射到这些属性。例如,如果表单有字段`name`和`email`,Action类可以如下所示: ```java public class ...

    struts2拦截器.rar

    5. 配置拦截器:在struts.xml配置文件中,通过`&lt;interceptors&gt;`和`&lt;interceptor&gt;`标签定义拦截器,使用`&lt;action&gt;`标签的`interceptor-ref`属性引用拦截器栈。可以使用`&lt;default-interceptor-ref&gt;`为所有动作设置默认...

    Struts2 in action中文版+配套源代码

    "Struts2InAction.war"可能包含了书中的所有示例代码,覆盖了各种主题,包括Action、拦截器、结果类型、OGNL表达式、表单验证、国际化等。通过阅读和运行这些代码,开发者可以更直观地了解Struts2的运作方式和实际...

Global site tag (gtag.js) - Google Analytics