いくつかの方法が思い浮かびますが、要因に応じて最適な方法が決まります。
1) 保持したいすべてのパラメータを毎回送信します。これを行う最も簡単な方法は、隠しフィールドを使用することです。ここでは、モデル駆動型も意味があるかもしれません。または、複数のアクションを 1 つのクラスに配置することもできます。どちらの方法でも、これらのアクションが共通のプロパティ セットを共有することが強調されます。
2)Vasilyが推奨するようにセッションに値を保存しますが、Struts2にはスコープインターセプターがあります...これを頻繁に行う必要がある場合は、参照する価値があります(ページの最後の例を参照):http://struts.apache.org/ 2.3.1.2/docs/scope-interceptor.htmlただし、これを正しく行うには少し注意が必要です。これがオフィス アプリケーションであり、ユーザーが私のようなものである場合、常に多数のウィンドウが開いていることになるからです。この状況では、トークンの追加も検討する必要があります ( struts2 トークン タグを参照)。)すべてのアクションが使用するグローバルストアから汚染されるのではなく、最新のデータを取得するために更新を行うときに、ダースのウィンドウの1つを防ぐ各「フロー」に。フロー/会話を処理する他の方法がいくつかあります...たとえば、誰かが今説明したものを実装すると思われるプラグインを書きました: http://code.google.com/p/struts2-conversation/
struts2 プラグインをざっと見て、車輪の再発明ではないことを確認することは常に価値がありますが、私はそのプラグインを保証することはできません.
3) ページから離れさせないでください。これは非常に巧妙です...追加のパラメータを選択する必要がある場合は、「ピックアップ」ボタンをクリックすると、必要なフィールドでフォームが展開され、このサブセクションで「更新」をクリックすると、フォームが閉じて残りが更新されますフィールドの。クライアント側の JS と、通常は XML または JSON 応答の組み合わせが必要になります。独自のページでは JSON の方が簡単です。JSON 応答を生成するには、struts2-json-pluginを参照してください。
ほとんどの場合、#3 を使用します。アクションが呼び出し元のアクションからのみ使用されることがわかっている場合、および/または非常にブックマークに安全なフォームが必要な場合 (可能であれば GET ですべてのパラメーターを渡す) は、おそらく #1 です。複数のアクションを連携させる必要があり、何らかの奇妙な理由で ajax を使用できなかった、より複雑なシナリオの #2。注 #3 と #2 はブックマークにあまり適していません。また、一般に、クライアント側のストレージを使用しないと、状態にあまり適していません。