我可以在不同的动作类之间传播struts2 ActionError吗?


问题内容

如果我有一个操作,其结果是对另一个类中另一个操作的redirectAction,那么是否有可能获得验证错误以显示在结果操作中?例如,在以下示例中,如果用户执行actionA(没有与之关联的视图),并且有错误,是否有任何方法可以在actionB结果(foo.jsp)中显示这些错误?还是我完全以错误的方式进行此操作?

<package name="a" extends="struts-default" namespace="/a">
    <action name="actionA" class="actionAClass">
        <result name="input" type="redirectAction">
            <param name="actionName">actionB</param>
            <param name="namespace">/b</param>
        </result>
        <result type="redirectAction">
            <param name="actionName">actionB</param>
            <param name="namespace">/b</param>
        </result>
    </action>
</package>
<package name="b" extends="struts-default" namespace="/b">
    <action name="actionB" class="actionBClass">
        <result>/foo.jsp</result>
    </action>
</package>

问题答案:

可能有一种方法可以做到这一点,但我认为这不是使用struts的好方法。如果actionA验证失败,则您很可能想要显示错误的非重定向输入结果,或者可能显示错误的全局错误页面。

我想您可以将操作错误存储在重定向之间的会话之类的位置,但是您实际上不会使用框架的设计方式。