2011-07-15 4 views
2

struts2でセッションオブジェクトを取得する方法はたくさんあります。セッションオブジェクトを次のものから取得するには、どちらが最善のアプローチですか?struts2でセッションを取得するための推奨されるベスト・アプローチは?

  1. するactionContext
  2. SessionAware
  3. ServletRequestAwareからと要求オブジェクトからのセッションの後の要求を取得します。

今私はリクエストオブジェクトが必要とされていない場合でも、すべてのアクションにセッションオブジェクトを取得するためServletRequestAwareを使用しています。

どちらが最適で、なぜそれが最適ですか?あなたはあまりにも述べた他の方法でのセッションにアクセスすることができますがSessionAwareを実装事前に

おかげ

答えて

3

が好ましいです。
SessionAwareを実装することで、セッション属性(マップ)をアクションに挿入するチャンスをstruts2に与えることができます。これにより、コードを基になるサーブレットコンテキストに結合することがなくなり、必要な属性を持つアクションにマップオブジェクトを渡すことができるため、テストが容易になります。 また、このセッションマップに加えられた変更は、実際のセッションオブジェクトに反映されます。

+0

役に立つ説明のためにdoctreyさんありがとうございます。私はサーバーの実際のパスを取得する必要があるためServletRequestAwareを使用せずにSessionAwareのセッションオブジェクトから** servletContext **を取得できますか? – developer

+0

@yuvarajよろしくお願いします。 ** servletContext **へのアクセスが必要な場合は、単に 'ServletContextAware'を実装してください。 – doctrey

+0

あなたのヒントありがとう、ドクトリ – developer

0

はdoctreyに同意します。あなたのアクションがセッションアウェアを実装するようにし、セッション変数(マップ変数)を作成します。その変数は普通の変数のように扱うことができます。コードが見やすくなります。

関連する問題