リクエストコンテキスト

概要

リクエストコンテキストはページテンプレートからページ出力を生成する際に使用する変数のプールです。これはプログラムコードにおいては java.util.Map インタフェースとして使うことができます。また、ページテンプレートにおいては ${} で括った式によってキーを指定し、対応する値をその位置に出力することができます。

値を参照するには、キーとしてコロンを含まない文字列を指定するか、"プリフィックス:キー名"という具合にプリフィックスをつけたキー名を指定します。プリフィックスを指定しない場合は以下の表に示す上の方のプリフィックスから順に探索が行われ、最初にマッチしたキーの値が参照されます。キーが見つからない場合にはプログラムコードにおいては null が返されます。ページテンプレートにおいては"(null)"という文字列が返されます。

プリフィックス 値の変更 意味
PAGE QuickReflectorServletが提供(include先でも有効)
REQUEST_A HttpServletRequestのget/set/removeAttribute()相当
COOKIE HttpServletRequestのgetCookies()、HttpServletResponseのaddCookie()相当
SESSION HttpServletRequestのgetSession()相当
REQUEST 不可 HttpServletRequestのgetParameter()で相当
ROOTDEF QuickReflectorServletが提供(contextpath, serverinfoを保持)
CONTEXT_A ServletContextのget/set/removeAttribute()相当
CONTEXT 不可 ServletContextのgetParameter()相当
CONFIG 不可 ServletConfigのgetParameter()相当

表のプリフィックスはWebCoreライブラリのQuickReflectorServletが決めている文字列です。SilverGear単体で使用する場合にはこのような構造はありません。

COOKIEにアクセスする場合は、CookieAccessor.CookieWrapperクラスにリクエストコンテキストマップを渡してオブジェクトを作り、それを通してアクセスする方が扱いが楽になります。