@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 - 実行コンテキスト