2

嗨,我们创建了一个名为 appInterceptorStack 的自定义拦截器堆栈,并将其称为<default-interceptor-ref name="appInterceptorStack"/>,

appInterceptorStack -> 没有附加验证和工作流拦截器。

但是现在对于一个特定的动作类,我需要使用验证方法,所以我需要验证拦截器

我创建了一个带有验证和工作流拦截器的新拦截器堆栈,并从动作类中引用它。但是只有默认的拦截器堆栈被执行。更改的没有被调用,请在下面找到示例代码。

<package name="default" extends="struts-default">
  <interceptor-stack name=”AppStack”&gt;
    <interceptor-ref name="exception"/>
    <interceptor-ref name="alias"/>
    <interceptor-ref name="params"/>
    <interceptor-ref name="servletConfig"/>
    <interceptor-ref name="params"/>
  </interceptor-stack>

  <interceptor-stack name=”GuiStack”&gt;
    <interceptor-ref name="exception"/>
    <interceptor-ref name="alias"/>
    <interceptor-ref name="params"/>
    <interceptor-ref name="servletConfig"/>
    <interceptor-ref name="params"/>
    <interceptor-ref name="validation" />
    <interceptor-ref name="workflow" />
  </interceptor-stack>

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

  <action name="test" class="com.jranch.Test">
    <interceptor-ref name="GuiStack”/>
    <result name="input">login.jsp</result>
    <result name="success" type="redirect-action">/secure/home</result>
  </action>
</package> 

有人可以帮帮我吗?

4

1 回答 1

1

配置看起来正确。你能打开 com.opensymphony 的调试日志吗?

然后你可以看到拦截器被依次调用。这是查看所调用内容的最快方法。

于 2011-06-06T13:04:39.607 回答