Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用拦截器时Struts2输入值丢失_Struts2 - Fatal编程技术网

调用拦截器时Struts2输入值丢失

调用拦截器时Struts2输入值丢失,struts2,Struts2,我对Struts2有问题 这是我的动作配置,在执行动作中的roleDete之前,会调用拦截器,但在此之后,输入值丢失,没有要删除的id,如果我删除拦截器,那么要删除的id就存在,有人能指导我解决这个问题吗 <action name="roleDelete" method="roleDelete" class="com.webapp.role.action.RoleAction"> <interceptor-ref name="validateUser"/> <

我对Struts2有问题

这是我的动作配置,在执行动作中的roleDete之前,会调用拦截器,但在此之后,输入值丢失,没有要删除的id,如果我删除拦截器,那么要删除的id就存在,有人能指导我解决这个问题吗

<action name="roleDelete" method="roleDelete" class="com.webapp.role.action.RoleAction">
  <interceptor-ref name="validateUser"/>
  <result name="input" type="tiles">usertypePage</result>
  <result name="success" type="redirect">usertypeForm</result>
</action>

用户类型页
用户类型

谢谢

听起来您已经定义了一个自定义validateUser拦截器堆栈,其中不包括所需的Struts 2拦截器。默认情况下,Struts 2会在每个请求上调用以下拦截器,除非您定义了自己的堆栈(正如您所做的那样):


dojo\.*,^struts\*
输入、返回、取消、浏览
输入、返回、取消、浏览
我的建议是浏览上面的列表,然后一次将它们添加回一个列表中,直到您确定需要正确填充请求变量。您可以在中阅读有关拦截器的更多信息。


dojo\.*,^struts\*
输入、返回、取消、浏览
输入、返回、取消、浏览
--

用那个。之后必须包含拦截器和defaultStack(使用我的“vendorStoreInterceptor”和“defaultStack”查看最后一个“拦截器堆栈”)

就这样

+1它可能是“params”拦截器,它遍历请求参数并在操作上设置它们,即在操作上调用setId()之类的方法。
        <interceptor-stack name="defaultStack">
            <interceptor-ref name="exception"/>
            <interceptor-ref name="alias"/>
            <interceptor-ref name="servletConfig"/>
            <interceptor-ref name="i18n"/>
            <interceptor-ref name="prepare"/>
            <interceptor-ref name="chain"/>
            <interceptor-ref name="debugging"/>
            <interceptor-ref name="scopedModelDriven"/>
            <interceptor-ref name="modelDriven"/>
            <interceptor-ref name="fileUpload"/>
            <interceptor-ref name="checkbox"/>
            <interceptor-ref name="multiselect"/>
            <interceptor-ref name="staticParams"/>
            <interceptor-ref name="actionMappingParams"/>
            <interceptor-ref name="params">
              <param name="excludeParams">dojo\..*,^struts\..*</param>
            </interceptor-ref>
            <interceptor-ref name="conversionError"/>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
            <interceptor-ref name="workflow">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
        </interceptor-stack>
     <interceptors>
        <interceptor name="vendorStoreInterceptor" class="br.org.myapp.actions.interceptors.VendorStoreInterceptor"></interceptor>

        <interceptor-stack name="defaultStack">
            <interceptor-ref name="exception"/>
            <interceptor-ref name="alias"/>
            <interceptor-ref name="servletConfig"/>
            <interceptor-ref name="i18n"/>
            <interceptor-ref name="prepare"/>
            <interceptor-ref name="chain"/>
            <interceptor-ref name="debugging"/>
            <interceptor-ref name="scopedModelDriven"/>
            <interceptor-ref name="modelDriven"/>
            <interceptor-ref name="fileUpload"/>
            <interceptor-ref name="checkbox"/>
            <interceptor-ref name="multiselect"/>
            <interceptor-ref name="staticParams"/>
            <interceptor-ref name="actionMappingParams"/>
            <interceptor-ref name="params">
              <param name="excludeParams">dojo\..*,^struts\..*</param>
            </interceptor-ref>
            <interceptor-ref name="conversionError"/>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
            <interceptor-ref name="workflow">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
        </interceptor-stack>

        <interceptor-stack name="mainStack">
            <interceptor-ref name="vendorStoreInterceptor"/>
            <interceptor-ref name="defaultStack"/>
        </interceptor-stack>
    </interceptors>

    <default-interceptor-ref name="mainStack"/>