リクエストコンテキストはページテンプレートからページ出力を生成する際に使用する変数のプールです。これはプログラムコードにおいては 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クラスにリクエストコンテキストマップを渡してオブジェクトを作り、それを通してアクセスする方が扱いが楽になります。