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>