如何将 ActionErrors 从拦截器传递到 Struts 2 中的操作?

问题描述 投票:0回答:1

我一直在阅读 Struts 2 文档中有关

StoreInterceptor
的内容,它讨论了如何将
StoreInterceptor
粘贴到
Action
定义中的
struts-config.xml
中,而且它确实有效。但也就是说,如果您要从
ActionErrors
中创建并添加
Action

我的问题是,我正在使用

Login
执行
LoginInterceptor
,如果
Login
失败,则会添加
ActionError
,如下所示:

((ActionSupport) invocation.getAction()).addActionError("Login failed");

它添加得很好,但是当我到达

LoginAction
时,它是在LoginInterceptor之后
调用的,
ValidationAwareSupport.actionErrors
null

我认为通过像这样添加

StoreInterceptor

,它会在请求或会话中存储
ActionErrors
(使用
operationMode
"store"
"retreive"
参数):

<action name="login" class="...LoginFormAction" > <interceptor-ref name="store"> <param name="operationMode">store</param> </interceptor-ref> <interceptor-ref name="defaultStack" /> <result name="input" type="tiles">adminLogin</result> <result name="success" type="tiles">adminLogin</result> </action>
但是,它不起作用。我也尝试过将 

StoreInterceptor

 直接添加到 
defaultStack
,但这也不起作用。

StoreInterceptor

不仅可以在动作之间保存
ActionErrors
,还可以在拦截器和动作之间保存?

java struts2 interceptor struts2-interceptors
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.