リンク
次のような場合はリンクを動的に作成する必要があります.
- クッキーを無効にしているブラウザでもセッションを有効にするためリンクにセッションIDを埋め込む場合.
- リクエストパラメータを動的に変更する場合.
上記に該当しない場合 (外部サイトへの静的なリンク) は, テンプレートHTMLに通常の (静的な) リンクを記述するだけで十分です.
静的なリンクは,
<a>
要素に
id
属性を付けないか,
go
で始まらない値を指定します.
動的なリンクを使うには
<a>
要素に
id
属性を付けて
go
で始まる値を指定し,
href
属性で遷移先のURLを指定します.
実行時, クッキーが無効のブラウザに対しては
href
属性にURLリライティングでセッションIDが埋め込まれます.
例:テンプレートHTML (foo.html)
<a id="goNext" href="next.html">次ページへ</a>
例:レンダリング結果
クッキーが有効なブラウザからアクセスされた場合, レンダリング結果は次のようになります.
<a id="goNext" href="next.html>次ページへ</a>
例:レンダリング結果
クッキーが無効なブラウザからアクセスされた場合, レンダリング結果は次のようになります.
<a id="goNext" href="next.html;jsessionid=DCFD14BF14B9F71050A3FC36E8D465EF">次ページへ</a>
リンクのパラメータを動的に変えるには
href
属性にパラメータを含むURLを指定し,
動的に値を変えたいパラメータ名と同じ名前のプロパティをページクラスに用意します. レンダリング時,
href
属性のパラメータ値は, 同じ名前のプロパティ値に置き換えられます.
パラメータと同じ名前のプロパティがページクラスにない場合は,
href
属性の値がそのままレンダリングされます.
パラメータと同じ名前のプロパティがある場合でも, パラメータ値をプロパティ値に置き換えたくない場合は,
パラメータ名に接頭辞
fixed_
を付加します. レンダリング時,
fixed_
は取り除かれ, パラメータ値はテンプレートHTMLの
href
属性の値がそのままレンダリングされます.
例:テンプレートHTML (foo.html)
<a id="goNext" href="next.html?foo=xxx&bar=yyy&fixed_baz=zzz">次ページへ</a>
例:ページクラスのプロパティ (FooPage.java)
public String foo = "aaa"; public String baz = "ccc";
例:レンダリング結果
レンダリング結果は次のようになります.
<a id="goNext" href="next.html?foo=aaa&bar=yyy&baz=zzz">次ページへ</a>
パラメータ
foo
の値は対応するプロパティの値に置き換えられます. パラメータ
bar
には対応するプロパティがないため, テンプレートの値がそのままレンダリングされます. パラメータ
fixed_baz
は接頭辞
fixed_
が取り除かれ, テンプレートの値がそのままレンダリングされます.
プロパティファイルの内容をリンクの文字列にするには
<a>
要素の内容に
<span>
要素を記述して,
id
属性の値を
key
+
Label
とします.
ラベルリソース
ファイルに
pagename.key
または
key
という名前のプロパティを定義します.
レンダリング時,
<span>
要素の内容は
ラベルリソース
ファイルの値に置き換えられます.
例:テンプレートHTML (foo.html)
<a id="goNext" href="next.html"><span id="linkLabel">dummy</a></span>
例:ラベルリソースファイル (label_ja.properties)
foo.link=次ページへ
例:レンダリング結果
レンダリング結果は次のようになります.
<a id="goNext" href="next.html"><span id="linkLabel">次ページへ</span></a>
関連項目
新しいウィンドウを開くには
<a>
要素の
href
属性で指定するURLに
newwindow=true
というパラメータを含めます.
このパラメータを指定することにより, 新しいウィンドウ用の スコープ が作成され, 元のウィンドウと状態が混在することを回避することができます.
例:テンプレートHTML (foo.html)
<a target="_blank" href="next.html?newwindow=true">新しいウィンドウで次ページへ</a>