Page PageTemplating
StrutsのtilesのようにTemplateを使用することが出来る。
- テンプレートPageの作成
まずは、templateとなるクラスを、Pageを継承して作成
public class BorderedPage extends Page { /** * @see Page#getTemplate() */ public String getTemplate() { return "border.htm"; } }
getTemplateメソッドをオーバーライドして、テンプレートとなるページを返す。
- テンプレート画面の作成
border.htm
<html> <head> <title>$title</title> </head> <h2 class="title">$title</h2> #parse($path) </html>
$titleはmodelなどから自動的に埋め込まれる。
実際の画面の埋め込みは#parse($path)
決まり文句と思っていてもいいが、$pathはclick.xmlで指定してある、pageタグの属性。
(このあたりのpathやらcontextやら、formatやらは自動的にmodel(Map)に設定)
<page path="home.htm" classname="Home"/>
- テンプレートを利用するPageの作成
テンプレートPageを継承して作成する、上のMappingのとおり、Homeクラス
public class Home extends BorderedPage { public Home() { addModel("title", "Home"); } }
テンプレートで$titleがあるので、パラメータを渡しておく
- テンプレートに埋め込む画面の作成
home.htm
<b>Welcome</b> to Home page your starting point for the application.
とりあえず固定の文字列を埋め込むようにしておくと
最終的には
<html> <head> <title>Home</title> </head> <h2 class="title">Home</h2> <b>Welcome</b> to Home page your application starting point. </html>