HTMLテンプレートの作成


では、まずHTMLテンプレートから作成していきましょう。helo.htmを開いてみてください。既に簡単なHTMLコードが書かれていますので、それを元に少し追記をしていきましょう。

<html>
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8">
    <title>Blank</title>
    $imports
  </head>
  <body>
    <h3>$title</h3>
    <p>$msg</p>
  </body>
</html>

普通のHTMLのように見えますが、途中に「$title」というようなものが見えますね。これは、ページクラス側で用意された変数を指定しているのだと考えてください。$titleであれば、titleという名前で登録された変数をここに書き出している、と考えるとよいでしょう。

では、続いてページクラス側です。こちらで必要な操作を行うことになります。Helo.javaを開き、既に書かれているソースコードに追記をして以下のようにしましょう。

package jp.tuyano;

public class Helo extends net.sf.click.Page {

public Helo(){
this.addModel("title", "Click Sample");
this.addModel("msg", "ようこそ、Clickの世界へ!");
}

}


ページクラスは、net.sf.click.Pageクラスを継承して作成します。通常、helo.htmにアクセスされたときには、この「Helo」というクラスが呼び出されます。テンプレートのファイル名とページクラス名は、密接な関係があり、同じ名前(ただしクラス名は最初の1文字目だけが大文字になる)で両者を作成すれば、自動的に2つが関連付けられ、呼び出されるようになるのです。

ここでは、「addModel」というメソッドを呼び出しています。これが、必要な値を変数に設定してテンプレート側に受け渡すためのものです。これは以下のように呼び出します。

addModel( 名前 , 値 );

これで、値を指定した名前で保管することができます。保管された変数は、そのままテンプレート側で利用することができます。例えば、ここではaddModel("title", "Click Sample");としてtitleという名前で値を保管しました。これは、そのままテンプレートで$titleと指定することで利用できるようになる、というわけです。

では、実際にプロジェクトをサーバーで実行し、ページにアクセスをしてみましょう。ここでは、作成されたページへのアクセスは、

http://localhost:8080/プロジェクト名/helo.htm

このようなURLを指定することになります。アクセスすると、helo.htmのテンプレートがロードされ、Heloクラスが実行された後に、レンダリングされたページがブラウザに表示されます。ページクラスで用意した変数がそのまま表示されていることがわかるでしょう。

helo.htmにアクセスすると、このように表示がされる。ページクラスで用意した変数が、テンプレートでレンダリングされ表示されているのがわかる。