之前一个表单 提交到了action中 可以正常得到表单中的数据,后来我加了个拦截器后 为什么执行到该action后就得不到了表单中数据了呢?

解决方案 »

  1.   

    看看debug追踪一下你的拦截器都做了什么事情,看看request中的queryString是什么样的
      

  2.   

    拦截器拦截了你的action,放放水把,让他通过吧
      

  3.   

    有拦截了我的action 但还是进入了 方法里面,只是这时就得不到表单的值了,奇怪了?
      

  4.   

    拦截器在什么位置上加的啊:如果在Action配置中加,必须加上struts2 默认的defaultStack拦截器。
      

  5.   

    顶,自己加的会覆盖掉defaultStack,所以如果需要的话还要加上defaultStack。
    debug跟踪一下最好。
      

  6.   

      对于struts.xml中的拦截器在默认状态是继承于struts-default.xml,但有一点应注意,它有点类似于java中的构造方法,默认时系统会自动增加一个空构造方法,一但你自己写了自己的构造方法后,系统将不会默认的为你增加空构造方法.所以,struts.xml默认会得到struts-default.xml中的所有拦截器,一但你自己写的拦截器后,你将丢掉默认得到的拦截器,因此还应该在action中加上默认拦截器的引用.如:
    你自己的拦截器:<interceptors>
        <interceptor name="timer" class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>
    </interceptors>
        <package name="default" namespace="/" extends="struts-default">
            <default-action-ref name="index" />
            <action name="index">
                <result type="redirectAction">
                    <param name="actionName">HelloWorld</param>
                    <param name="namespace">/example</param>
                </result>
                <interceptor-ref name="timer"/>
                <interceptor-ref name="defaultStack"/>
            </action>
        </package>
      

  7.   

    楼上正解这两天问这个问题的人不少~看来Struts2要走进千家万户了