Clickの仕組み


Clickは、「ClickServlet」と呼ばれるサーブレットを通じて全体の流れを制御します。web.xmlを開いてみると、以下のようなサーブレットが登録されていることがわかるでしょう。

<servlet>
  <servlet-name>ClickServlet</servlet-name>
  <servlet-class>net.sf.click.ClickServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>ClickServlet</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>

これにより、.html拡張子が指定されると、すべてClickServletに送られ処理されるようになることがわかるでしょう。これがClickの基本的な考えです。

Clickでは、それぞれのWeb画面を「ページ」として作成します。Pageは、HTMLのテンプレートと、それを制御するPageクラスから構成されます。このテンプレートは「.htm」として作成されます。クライアントが、作成された.htmlファイルにアクセスすると、ClickServletが呼び出され、そのテンプレートをロードし、Pageクラスの指定のメソッドを呼び出して処理を行い、結果を送り返す、というわけです。これにより、画面の表示と制御(つまり、ビューとコントロール)を分離しているのですね。

ページの作成


では、実際にページを作成してみましょう。Click IDEをインストールしていると、メニューバーに「クリック」という項目が追加されます。ここから「新規Clickページの作成」を選ぶと、画面にページ作成のための画面が現れます。

ここでは、作成するHTMLテンプレートとPageクラスに関する基本的な設定を行います。ここでは、以下のように設定をしておきましょう。(以下に記載した以外の項目はデフォルトのままにしておいてください

プロジェクト:(作成したプロジェクトを選択)
ウィザード・テンプレート:Blank(とりあえず使わない)

HTMLテンプレート
ファイル名:helo.htm

ページクラス
パッケージ:jp.tuyano
名前:Helo

click.xmlにマッピングを追加する:チェックをONにする

ページの作成画面。helo.htmというテンプレートと、Heloクラスを作成する。

これで、「src」のjp.tuyanoパッケージ内に「Helo.java」というソースコードファイルが、また「WebContent」内に「helo.htm」というファイルがそれぞれ作成されます。これらが、PageクラスとHTMLテンプレートファイルになります。

実は、この他にも作成されるものがあります。それは「click.xml」のソースコードです。先に「click.xmlにマッピングを追加する」のチェックをONにしてページを作成しましたが、これにより、click.xmlに以下のようなコードが自動生成されます。

<pages>
  <page path="helo.htm" classname="jp.tuyano.Helo"></page>
</pages>

Clickでは、使用するページはこのようにclick.xmlに登録をします。<pages>タグの中に、<page>タグを作成し、そこにpathとclassnameで、HTMLテンプレート名とクラス名をそれぞれ指定します。これにより、指定したHTMLテンプレートへのアクセスがあると、自動的にページクラスが呼び出されるようになるわけです。

このclick.xmlへの記述を忘れると、ページはうまく機能しません。これは、Clickの唯一の設定ファイルといってよいものです。この<page>タグの記述だけはしっかりと覚えておきましょう。