如何在重定向操作中传递ActionMessage和ActionError

时间:2012-09-04 07:18:02

标签: jsp struts2

  

可能重复:
  Can I propagate struts2 ActionErrors between different action classes?

in action.Test1

公共类Test1扩展了ActionSupport {

    public String execute() {
        addActionMessage("Hello in test2");
        return SUCCESS;
    } else {
      addActionError("Please try again");
        return INPUT;
    }
}
struts.xml中的

<action name="test1" class="action.Test1">
        <result name="success" type="redirect">test2</result>
  </action>
<action name="test2" class="action.Test2">
        <result name="success">/test2.jsp</result>
</action>

我想在ActionMessage

中显示ActionErrortest2.jsp

1 个答案:

答案 0 :(得分:0)

我强烈认为,人们应该了解框架如何运作的基本概念。对于redirect,它表示一个新请求,它将使框架删除与第一个请求相关的所有数据,并将新请求和响应对象放在值堆栈中,因此在您的情况下,您的{{1} }和ActionMessage数据丢失。

如果您在同一个应用程序上下文中执行此操作,如果使用ActionError进行另一个操作redirectAction结果用于重定向到另一个URL(Web资源),则更为明智。

为了保存数据,您有这些选项

  1. 使用会话保存值并在其他操作中检索值。
  2. 利用范围