レイアウト
レイアウトを使うには
ビュールート
/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"; }