Creamyではリクエストを跨いでパラメータを授受する方法のひとつとして、 グローバルオブジェクトが用意されています。
グローバルオブジェクトはその名の通り、 パラメータを格納出来てどこからでもアクセス可能なオブジェクトです。 Webアプリケーションでのセッションオブジェクトと同様の働きをします。
グローバルオブジェクトは、そのスコープの違いによって2種類存在します。
種類 | 説明 |
ApplicationData | アプリケーション起動時に生成され、アプリケーション終了時に破棄されます。コントローラおよびアクティビティからアクセスが可能です。 |
ContinualData | Window(Browser)を開いたときに生成され、Windowを閉じるときに破棄されます。コントローラからのみアクセスが可能です。 |
ApplicationDataの利用はコントローラおよびアクティビティから利用が可能です。
ただし、ContinualDataの利用はコントローラからのみ利用が可能です。
以下にコントローラからのアクセス例を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | //コントローラからのアクセス
public class GlobalTestController extends Controller {
public Result GlobalTest() {
// getApplicationData()の戻り値型は Map<String, Object>
getApplicationData().put("AppKey", "AppValue");
getApplicationData().get("AppKey"); //"AppValue"が取得できる
// getContinualData()の戻り値型も同様に Map<String, Object>なので
// String型以外でも格納可能
getContinualData().put("ContinualKey", 12345);
getContinualData().get("ContinualKey"); // 12345 が取得できる
}
}
|
getApplicationDataメソッドはアクティビティでも利用可能です。