CodeZine(コードジン)

特集ページ一覧

Javaで軽快に使える「軽量フレームワーク」特集
低い学習コストを重視した「Apache Click」 (1)

第4回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/11/26 14:00

目次

ClickServletの登録

 では、コーディングに入りましょう。まず最初に行うのは、「ClickServletの登録」です。Apache Clickでは、「ClickServlet」というサーブレットにより全体を制御します。このサーブレットを登録する必要があります。web.xmlを開き、次のように修正します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>clickapp</display-name>

<servlet>
	<servlet-name>ClickServlet</servlet-name>
	<servlet-class>org.apache.click.ClickServlet</servlet-class>
	<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>ClickServlet</servlet-name>
	<url-pattern>*.htm</url-pattern>
</servlet-mapping>

  <welcome-file-list>
    <welcome-file>helo.htm</welcome-file>
  </welcome-file-list>
</web-app>

 ここでは、org.apache.click.ClickServletというサーブレットを登録し、*.htmで呼び出されるようにしています。また、ここではhelo.htmをウェルカムページにしておきました。これで、ファイル名が省略された場合にはhelo.htmが呼ばれるようになります。

click.xmlの用意

 続いて、Apache Clickの設定情報を管理するXMLファイルを作成します。WEB-INF内に「click.xml」という名前でファイルを作成してください。そして次のように記述をします。

<?xml version="1.0" encoding="UTF-8"?>   
<click-app charset="UTF-8">
	<pages package="jp.codezine.click">
		<page path="helo.htm" classname="HeloPage"/>
	</pages>
</click-app>

 <click-app>というタグの中に、アプリケーションで必要となる情報を記述します。なお<click-app>には、charset="UTF-8"という属性が記述されていますが、これによりテキストのエンコーディングはUTF-8を使用するようになります。以後、ファイルの作成時には(Javaソースコードファイルを除いて)UTF-8を使うように心がけてください。

 Apache Clickでは、「Page」と呼ばれるクラスを作成します。それぞれのWebページごとに、Pageクラスと、そこで表示する画面となるテンプレートファイルを用意し、各Pageクラスとテンプレートファイルのマッピング情報を用意しておくのです。それが、<pages>タグの部分です。

 このタグ内には、<page>タグとして、path="helo.htm" classname="HeloPage"という設定を用意しています。これにより、helo.htmにアクセスがあった場合には、HeloPageクラスがPageクラスとして使われるようになります。

 このhelo.htmは、HTMLで記述したテンプレートファイルです。Apache Clickでは、HTMLベースのテンプレートを読み込み、これをレンダリングして結果をクライアントに送り返すことでページを表示します。

オートマッピングについて

 このようにApache Clickでは、click.xmlでPageクラスとテンプレートファイルをマッピングして、表示するWebページを登録していきます。ただし、このやり方はページ数が増えてくると少々面倒になってくることでしょう。また、先にApache Wicketについて説明した後でこれを読むと「また設定ファイルの世界に逆戻りか」と思ってしまうかもしれません。

 実をいえば、今のclick.xmlは、もっと簡単に記すことができます。次のように書いても、まったく問題なく機能するのです。

<?xml version="1.0" encoding="UTF-8"?>   
<click-app charset="UTF-8">
	<pages package="jp.codezine.click"/>
</click-app>

 <pages>にpackageの指定を用意しているだけです。各ページごとのマッピング情報はありませんが、これでも問題なく動きます。

 Apache Clickには「オートマッピング」と呼ばれる機能があります。これは、アクセスされたURLに応じて自動的にPageクラスとテンプレートファイルを読み込み表示する機能です。例えば、「helo.htm」にアクセスがあったなら、自動的に「HeloPage」というPageクラスと「helo.htm」というテンプレートファイルをロードしてWebページを生成します。あらかじめ決められた命名規則に従ってPageクラスとテンプレートファイルを用意すれば、わざわざclick.xmlに<page>タグとしてマッピング情報を記述する必要はないのです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2009/11/26 19:18 ※onInit関連の記述に誤りがありました。リストおよび本文を修正致しました。

バックナンバー

連載:Javaで軽快に使える「軽量フレームワーク」特集

もっと読む

著者プロフィール

  • 掌田 津耶乃(ショウダ ツヤノ)

    三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。 ※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開中。またGoogle+プロフィールはこちら。

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5