@Published
public final class SessionUtil
extends java.lang.Object
SessionManager
によって提供される。
SessionManager
の実装は、SystemRepository
からコンポーネント名"sessionManager"で取得される。
本クラスはSessionStoreHandler
と併せて使用すること。Modifier and Type | Method and Description |
---|---|
static void |
changeId(ExecutionContext ctx)
セッションIDを変更する。
|
static <T> T |
delete(ExecutionContext ctx,
java.lang.String name)
セッションを削除する。
指定した名称のセッションオブジェクトが存在しない場合は無視される。
|
static <T> T |
get(ExecutionContext ctx,
java.lang.String name)
名称を指定してセッションからオブジェクトを取得する。
セッションに指定した名称をもつオブジェクトが存在しない場合、
SessionKeyNotFoundException を送出する。 |
static void |
invalidate(ExecutionContext ctx)
セッションを無効化する。
|
static <T> T |
or(ExecutionContext ctx,
java.lang.String name,
T defaultValue)
名称を指定してセッションからオブジェクトを取得する。
セッションに指定した名称をもつオブジェクトが存在しない場合、デフォルト値を返す。
|
static <T> T |
orNull(ExecutionContext ctx,
java.lang.String name)
名称を指定してセッションからオブジェクトを取得する。
セッションに指定した名称をもつオブジェクトが存在しない場合、nullを返す。
|
static void |
put(ExecutionContext ctx,
java.lang.String name,
java.lang.Object value)
SessionStore に変数を保存する。
オブジェクトの保存先はSessionManager で指定したSessionStore が選択される。
同一の登録名をもつオブジェクトは上書きされる。
よって、複数のSessionStore を利用する場合でも、
同一の登録名をもつオブジェクトは一つしか登録できない。
注意:セッションで管理できるオブジェクトの制限について、
SessionUtil.put(ExecutionContext, String, Object, String) を参照すること。
|
static void |
put(ExecutionContext ctx,
java.lang.String name,
java.lang.Object value,
java.lang.String storeName)
保存先の
SessionStore を指定して、セッションに変数を保存する。
同一の登録名をもつオブジェクトは上書きされる。
よって、複数のSessionStore を利用する場合でも、
同一の登録名をもつオブジェクトは一つしか登録できない。
注意:セッションに直接格納し、復元ができるオブジェクトの制限についてセッションに直接格納できるのは、下記条件を満たすJava Beanオブジェクトのみである。 デフォルトコンストラクタが定義されていること 値を保持したいプロパティに対し、setter及びgetterが定義されていること シリアライズ可能であること 上記条件を満たさないオブジェクトを登録した場合、格納/復元処理が正常に動作しない。 例えば、配列型のオブジェクトを直接セッションに格納した場合、復元できない。 その場合、配列を直接格納するのではなくBeanオブジェクトのプロパティとして保持し、 Beanオブジェクトをセッションに格納すること。 |
public static <T> T get(ExecutionContext ctx, java.lang.String name)
SessionKeyNotFoundException
を送出する。
// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro"
SessionUtil.get(ctx, "userName"); // -> "Nabu Rakutaro"
// セッションに存在しないオブジェクトを指定
SessionUtil.get(ctx, "test"); // -> SessionKeyNotFoundExceptionを送出
T
- セッションに格納されているオブジェクトの型ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称SessionKeyNotFoundException
- 指定したオブジェクトの名称がセッションに存在しない場合public static <T> T orNull(ExecutionContext ctx, java.lang.String name)
// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro"
SessionUtil.orNull(ctx, "userName"); // -> "Nabu Rakutaro"
// セッションに存在しないオブジェクトを指定
SessionUtil.orNull(ctx, "test"); // -> null
T
- セッションに格納されているオブジェクトの型ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称public static <T> T or(ExecutionContext ctx, java.lang.String name, T defaultValue)
// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro"
SessionUtil.or(ctx, "userName", "デフォルト値"); // -> "Nabu Rakutaro"
// セッションに存在しないオブジェクトを指定
SessionUtil.or(ctx, "test", "デフォルト値"); // -> "デフォルト値"
T
- セッションに格納されているオブジェクトの型ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称defaultValue
- デフォルト値public static void put(ExecutionContext ctx, java.lang.String name, java.lang.Object value)
SessionStore
に変数を保存する。
オブジェクトの保存先はSessionManager
で指定したSessionStore
が選択される。
同一の登録名をもつオブジェクトは上書きされる。
よって、複数のSessionStore
を利用する場合でも、
同一の登録名をもつオブジェクトは一つしか登録できない。
注意:セッションで管理できるオブジェクトの制限について、
SessionUtil.put(ExecutionContext, String, Object, String)
を参照すること。
SessionUtil.put(ctx, "userName", "Nabu Rakutaro");
ctx
- 実行コンテキストname
- セッションに登録するオブジェクトの名称value
- セッションに登録するオブジェクトpublic static void put(ExecutionContext ctx, java.lang.String name, java.lang.Object value, java.lang.String storeName)
SessionStore
を指定して、セッションに変数を保存する。
同一の登録名をもつオブジェクトは上書きされる。
よって、複数のSessionStore
を利用する場合でも、
同一の登録名をもつオブジェクトは一つしか登録できない。
注意:セッションに直接格納し、復元ができるオブジェクトの制限について
SessionUtil.put(ctx, "userName", "Nabu Rakutaro", "httpSession");
ctx
- 実行コンテキストname
- セッションに登録するオブジェクトの名称value
- セッションに登録するオブジェクトstoreName
- 登録対象のセッションストア名public static <T> T delete(ExecutionContext ctx, java.lang.String name)
// Sessionスコープに"sessionProject"という名称でオブジェクトが登録されている前提
SessionUtil.delete(context, "sessionProject");
ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称null
)public static void invalidate(ExecutionContext ctx)
ctx
- 実行コンテキストpublic static void changeId(ExecutionContext ctx)
このメソッドを実行すると、セッションIDだけが変更され セッションに保存した情報は維持される。
ctx
- 実行コンテキスト