我一直在阅读StoreInterceptor
Struts 2 文档中的内容,它讨论了如何将 StoreInterceptor 粘贴到您的 Action 定义中struts-config.xml
,并且它可以正常工作。但那是如果您ActionErrors
在 Action 中创建和添加 from。
我的问题是我正在使用 a 进行登录LoginInterceptor
,如果登录失败,则会添加ActionError
如下内容:
((ActionSupport) invocation.getAction()).addActionError("Login failed");
它添加得很好,但是当我到达在之后调用的LoginAction 时LoginInterceptor
,ValidationAwareSupport.actionErrors
是null
.
我认为通过添加StoreInterceptor
这样的内容,它将存储ActionErrors
在请求或会话中(使用operationMode
"store"
or"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
于动作之间的保存,而且适用于拦截器和动作之间的保存?