レイアウト
レイアウトを使うには
ビュールート
/layout/layout.html
に画面全体の構造を定義します.
layout.html
の
<body>
要素内では,実際にリクエストされたページを表示する位置を
<te:includeChildBody>
要素で, その他の部品化されたHTMLを表示する位置を
<te:include>
要素で指定します.
<te:includeChildBody>
要素及び
<te:include>
要素には
id
属性を付け,任意の名前を指定します.
<te:include>
要素には
te:src
属性でインクルードする部品化されたHTMLのパスを指定します.
レンダリング時,
<te:includeChildBody>
要素は実際にリクエストされたページの
<body>
要素の内容で,
<te:include>
要素は
te:src
属性で指定されたHTMLの
<body>
要素の内容で, それぞれ置き換えられます. また,
<title>
要素の内容は実際にリクエストされたページの
<title>
要素の内容に置き換えられます.
例:レイアウトHTML (layout.html)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>レイアウトのタイトル</title>
</head>
<body>
<table>
<tr>
<td>
<te:include id="includeHeader" te:src="/layout/header.html" />
</td>
</tr>
<tr>
<td>
<te:includeChildBody id="includeChildBody"/>
</td>
</tr>
<tr>
<td>
<te:include id="includeFooter" te:src="/layout/footer.html" />
</td>
</tr>
</table>
</body>
</html>
例:リクエストされた本体のHTML (foo.html)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<title>本体のタイトル</title>
</head>
<body>
<span id="name">本体</span>
</body>
</html>
例:テンプレートHTML (foo.html)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<title>本体のタイトル</title>
</head>
<body>
<p>本体</p>
</body>
</html>
例:ヘッダHTML (header.html)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<title>ヘッダのタイトル</title>
</head>
<body>
<p>ヘッダ</p>
</body>
</html>
例:フッタHTML (footer.html)
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<title>フッタのタイトル</title>
</head>
<body>
<p>フッタ</p>
</body>
</html>
例:レンダリング結果
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:te="http://www.seasar.org/teeda/extension"
xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>本体のタイトル</title>
</head>
<body>
<table>
<tr>
<td>
<p>ヘッダ</p>
</td>
</tr>
<tr>
<td>
<p>本体</p>
</td>
</tr>
<tr>
<td>
<p>フッタ</p>
</td>
</tr>
</table>
</body>
</html>
特定の画面だけ異なったレイアウトを使うには
異なったレイアウトを使う画面のページクラスに
getLayout()
メソッドを用意して, 戻り値で使用するレイアウトのビュールート (デフォルトは
/view
) からのパスを指定します. このメソッドは
public
で引数はなく,戻り値の型は
String
です.
例:ページクラス (FooPage.java)
public String getLayout() {
return "/layout/otherLayout.html";
}
