2011-08-09 19 views
0

私たちはstruts2アクションクラスで異なるメソッドを持つWebアプリケーションを開発しています。 1つの変数をインスタンス化して、ある値を割り当てます。その変数値を別のメソッドで使用したいと考えています。strutsアクションクラスで渡す変数

これは2通りの方法で可能だと思います。 1.静的変数を使用していますが、静的グローバル変数を使用している場合、別のユーザーも同じ変数値に同時にアクセスしているか、新しいユーザーで値を上書きしています。 2. HTTPセッションを使用する。

1つの方法から

を示唆してくださいアクションクラス内の別のメソッドに割り当てられた値を取得する他の方法があります。

+0

これは役に立ちますhttp://struts.apache.org/2.0.14/docs/scope-in​​terceptor.html –

+0

この質問は理解しにくいです。別の方法で別の値を使うとどういう意味ですか?あなたはa)同じクラスで、b)別のクラスであることを意味しますか?一般的には、アクション間に多くの相互作用を持つべきではありません。アクションはほとんど機能せず、その機能の多くを委譲する必要があります。レイヤー/ティアの観点から考えると役立ちます。 Struts2は、フロントエンドの懸念事項を処理する最初の層の一部です。 2番目の層は、ビジネスロジックが進む場所です。次に、永続層が存在することがよくあります。状態を共有する必要があると思われるアクションは、実際には同じサービス/ビジネスオブジェクトを使用する必要があります。 – Quaternion

答えて

1

スコープのインターセプタで確認してください。 1つのメソッドの実行が完了すると、変数の値がスコープに格納され(セッションになる可能性があります)、別のメソッドを呼び出す直前に値を取得します。第二の方法は、最初で呼び出された場合

は、単にパラメータとして渡す:

0

は、あなたのクラスの制御フローによっては、他の二つのオプションがあります。

アクションクラスの各インスタンスに固有の(静的ではなく)インスタンス変数を使用します。最初のメソッドで値を設定してから、別のメソッドで値を読み取ります。

+0

アクションクラスのインスタンスを作成できません – Chandrasekhar

関連する問題