我有一个正常工作的拦截器,除了查询字符串没有传递给拦截器的动作。
<action name="EditIroCase" class="iro.action.IroCaseAction">
<interceptor-ref name="authIro"/>
<result name="success">iro/IroCaseFORM.jsp</result>
</action>
网址:/EditIroCase.action?id=123
动作是我正在添加拦截器的现有动作。在Action中实现ParamAware以从URL获取ID并且工作正常。尝试了几个不同的东西,但似乎无法使其发挥作用。使用了大量的拦截器,从不需要在执行过程中维护一个参数。
答案 0 :(得分:0)
拦截器的工作略有不同而不是行动。因为他们属于行动。所以你不能向拦截器添加动作,而是拦截动作。
您应该知道您是使用xml配置或注释,还是其他配置提供程序,拦截器存储在集合中,例如List
或Set
,无关紧要,但所有拦截器都在一个地方。使用<interceptor-ref>
中的<action>
标记覆盖拦截器的配置。默认情况下,使用<default-interceptor-ref>
标记配置操作,该标记在核心包的struts-default.xml
中定义,并指向defaultStack
。此堆栈旨在满足您的所有需求,但如果您使用自定义拦截器,则应明确添加对defaultStack
的引用或创建您将引用的自定义堆栈。
<action name="EditIroCase" class="iro.action.IroCaseAction">
<interceptor-ref name="authIro"/>
<interceptor-ref name="defaultStack"/>
<result name="success">iro/IroCaseFORM.jsp</result>
</action>
现在应该填充参数。