4

重複の可能性:
異なるアクション クラス間で struts2 ActionErrors を伝播できますか?

in action.Test1

public class Test1 extends 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

4

1 に答える 1

1

それredirectは新しいリクエストを意味するため、フレームワークは最初のリクエストに関連するすべてのデータを削除し、リクエストとレスポンスの新しいオブジェクトが値スタックに配置されるため、ActionMessageデータActionErrorが失われます。

同じ App コンテキストで実行している場合、結果が別の URL (Web リソース) にリダイレクトするために使用されるためredirectAction、他のアクションに行く場合は使用することをお勧めします。redirect

データを保存するには、次のオプションがあります

  1. セッションを使用して値を保存し、他のアクションで値を取得します。
  2. スコープを利用する
于 2012-09-04T11:13:07.143 に答える