2

別のアクションからアクションにリダイレクトするときに奇妙な問題が発生しています。要するに、最初のアクション (リダイレクト元) でキャプチャされた名前付き変数は、何らかの形で値スタックに保持され、2 番目のアクションで同じ名前付き変数を上書きしています。いくつかのコードで説明します。

<action name="r/{seoURL}" class="ReportsAction"
    method="displayReport">
    ...
    <result name="REDIRECT_TO_NEXT_ACTION" type="redirectAction">
        <param name="actionName">s/${seoURLForRedirect}</param>
        <param name="namespace">/reports</param>
    </result>
    ...
</action>

戻る前に変数${seoURLForRedirect}を設定しています。ReportsAction2 番目のアクションには、次のマッピングがあります。

<action name="s/{seoURL}" class="ReportSeriesAction"
    method="displayReportSeries">
    ...
</action>

ご覧のとおり、2 番目のアクションに同じ名前の変数がありますseoURL。この値は、最初のアクションで見つかった値に設定されます。seoURL値スタックが最初のアクションで設定された値を維持している理由を理解できません。特に、リダイレクト結果パラメーターに上書きしているためです。

どんな助けでも感謝します。

4

1 に答える 1

2

classアクション属性に基づいて、Springプラグインを使用していると想定しています。

scope="prototype"リクエストごとにインスタンス化するには、アクションを/non-singletonとして宣言する必要があります。

そうでない場合は、シングルトンを使用しており、プロパティはリクエスト間で維持されます。

別のワイルドカードアクションを指すワイルドカードにredirectAction'を設定しようとしたことがないので、質問の2番目の部分についてはよくわかりません。actionName

于 2013-01-29T19:57:34.280 に答える