4

可能重复:
我可以在不同的动作类之间传播 struts2 ActionErrors 吗?

在行动.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>

我想 显示ActionMessageActionErrortest2.jsp

4

1 回答 1

1

因为redirect这意味着一个新请求,这将使框架删除与第一个请求相关的所有数据,并且请求和响应的新对象将被放置在值堆栈中,因此在您的情况下,您的ActionMessage数据ActionError将丢失。

如果您在相同的应用程序上下文中执行此操作,则更建议使用redirectAction它是否要执行其他操作,因为redirect结果用于重定向到另一个 URL(Web 资源)。

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

  1. 使用会话保存值并在其他操作中检索值。
  2. 使用范围
于 2012-09-04T11:13:07.143 回答