我有2个动作。首先显示表单,另一个显示表单。如果未将processAdd
操作验证为redirectAction,则返回Add
操作。 Store
拦截器在“添加”操作上显示正确的错误,但在重定向操作期间,表单上填写的值将丢失。
我loose Value Stack
重定向,我明白了。
有什么解决方法吗?
不想使用结果参数,过多的工作。
<action name="add" class="com.myapp.actions.StudentAction" method="input">
<interceptor-ref name="store">
<param name="operationMode">RETRIEVE</param>
</interceptor-ref>
<result name="input" type="tiles">/student.edit.tiles</result>
</action>
<action name="processAdd" class="com.myapp.actions.StudentAction">
<interceptor-ref name="store">
<param name="operationMode">STORE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="success" type="redirectAction">list</result>
<result name="input" type="redirectAction">add</result>
<result name="failure" type="redirectAction">add</result>
</action>
答案 0 :(得分:1)
用于存储ValidationAware操作的消息/错误的拦截器 和字段错误到HTTP会话,这样它将是可检索的 在稍后阶段。这允许动作的消息/错误和字段 只有特定的HTTP请求才能提供更长的错误。
您无法使用关注操作消息/错误和字段错误的消息存储拦截器来获取值堆栈数据。
或者你可以使用链拦截器或在会话中存储值,甚至消息存储拦截器使用会话对象来存储消息/错误。
答案 1 :(得分:1)
您正在寻找的是Scope Interceptor,而不是商店拦截器。