1

多かれ少なかれStruts 1.2に似た独自のフレームワークを使用しているレガシーアプリケーションがあります.Struts 2の使用を開始しました.多くの場所で、jspから古いアクションにhtmlフォームを送信しています. 私が望むのは、最初のリクエストが新しいStruts 2アクションに送られ、そこからリクエストをレガシーアクションに転送して、宛先のレガシーアクションですべてのソースリクエストパラメータを取得することです.結果タイプのリダイレクトがあることを知っています(後述)ただし、それはソース リクエスト パラメータをレガシー アクションに転送しません。

@Result(name = "displayCustomer",
        location = "legacyAction.do", type = "redirect")


@Action("display-customer!displayCustomer")
  public String displayCustomer() {
    return "displayCustomer";
  }

リダイレクトに似た「転送」のタイプは見つかりませんでした。Struts 2 アクションから非 Struts 2 アクションにリクエストを転送する方法がわかりません。

4

2 に答える 2

1

SUCCESSなどの結果タイプに基づいて、コントロールをそれぞれのページに転送するだけです。チェーン結果タイプを使用して、2つの異なるアクションを一度に実行できます。

次のようになります。

XML構成を使用する

    <action class="your_action_path" name="your_action_name" method="your_target_method">
                <result type="chain">your_legacy_action</result>
    </action>

     //Then your_legacy_action_mapping here

<action class="your_legacy_action_path" name="your_legacy_action_name" method="your_target_method">
                <result>your_target_success_page</result>
    </action>
于 2013-03-02T09:07:15.293 に答える
0

struts2 では、デフォルトの結果タイプは「dispatcher」として設定されています。リクエストを「転送」します。type="dispatcher" を設定してみてください。「dispatcher」結果タイプが正しく構成されているかどうか、Struts 構成を確認してください。以下のように見えるはずです。

<result-types>
   <result-type name="dispatcher" default="true"
                class="org.apache.struts2.dispatcher.ServletDispatcherResult" />
</result-types>
于 2013-03-02T08:26:12.747 に答える