Validation Struts 2在验证失败时重定向并保留错误消息

Validation Struts 2在验证失败时重定向并保留错误消息,validation,redirect,struts2,Validation,Redirect,Struts2,我试图在重定向操作的输入字段后显示验证错误消息。我正在尝试使用MessageStoreInterceptor,但没有多大成功。 下面是struts.xml文件: <action name="list" class="myAction" method="list"> <interceptor-ref name="store"> <param name="operationMode">RETRIEVE<

我试图在重定向操作的输入字段后显示验证错误消息。我正在尝试使用MessageStoreInterceptor,但没有多大成功。 下面是struts.xml文件:

        <action name="list" class="myAction" method="list">
        <interceptor-ref name="store">
            <param name="operationMode">RETRIEVE</param>
        </interceptor-ref>
        <interceptor-ref name="myDefaultInterceptorStack" />
        <result name="success">/list.jsp</result>
        <result name="input">/list.jsp</result>
    </action>
    <action name="add" class="myAction" method="add">
        <interceptor-ref name="store">
            <param name="operationMode">STORE</param>
        </interceptor-ref>
        <interceptor-ref name="myDefaultInterceptorStack" />
        <result name="success" type="redirectAction">
            <param name="actionName">list</param>
        </result>
        <result name="input" type="redirectAction">
            <param name="actionName">list</param>
        </result>
    </action>

检索
/list.jsp
/list.jsp
贮藏
列表
列表
该操作的list方法在list.jsp中设置下拉列表的值,因此必须在显示jsp之前执行下拉列表

验证位于MyAction-add-validation.xml中:

    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
       "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message key="name.required" />
        </field-validator>
    </field>
</validators>

如果我调用list.action,list.jsp将正确显示并填充。然后我提交了调用add.action的表单,由于我离开了name字段emtpy,验证失败。 MessageStoreInterceptor存储字段错误,然后输入重定向指向list操作,但是list操作显然会向前转发到输入,而不会首先执行list方法

因此,如果我将标记放在list.jsp中,我可以看到验证中的错误消息,但是list.jsp中的下拉列表没有填充,因为list.action的list方法尚未执行

有什么方法可以达到我所需要的吗? 任何帮助都是受欢迎的。 感谢所描述的MyAction需要实现Preparable,这样当验证失败时,由于prepare()方法在它之前被调用,我们仍然可以填充控件