Wicketのファイル構成
では、Webページを作成していきましょう。Wicketでは、Webページを作成する際には以下の3つのファイルが必要となります。
・WebApplicationクラス
Webアプリケーション全体を管理するためのものです。まずはこのクラスが必要となります。ここで、表示するページのクラスを設定したりしていきます。
・WebPageクラス
Webページを作成する場合は、WebPageクラスという形で表示するコンポーネントなどを作成していきます。
・HTMLテンプレート
作成したWebPageクラスのコンポーネント類は、このHTMLテンプレートにはめ込まれてページとして表示されます。
Webアプリケーションでは、まずWebApplicationクラスを1つ作成しておきます。そして、表示するWebページごとに、WebPageクラスとHTMLテンプレートを作っていくわけです。
WebApplicationクラスの作成
では、WebApplicationクラスから作成をしましょう。ここでは、jp.allaboutパッケージに「SampleApp」というクラスで作成をしてみます。このクラスは、通常のJavaクラスとして作成をします。特別な設定や操作は不要です。
package jp.allabout;
import org.apache.wicket.protocol.http.WebApplication;
public class SampleApp extends WebApplication {
protected void init() {
super.init();
getRequestCycleSettings().setResponseRequestEncoding("UTF-8");
getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
getMarkupSettings().setStripWicketTags(true);
}
@Override
public Class getHomePage() {
return Page1.class;
}
}
このクラスは、org.apache.wicket.protocol.http.WebApplicationクラスを継承して作成します。ここでは2つのメソッドを用意していますね。「init」は、初期化のための処理を用意するものです。そして「getHomePage」は、ホームページのクラスを返すメソッドです。
まず、initメソッドから見てみましょう。ここではリクエストとマークアップのエンコーディング設定と、Wicket用のタグの属性に関する設定を行っています。
getRequestCycleSettings().setResponseRequestEncoding("UTF-8");
getRequestCycleSettingsは、リクエストに関する設定などを行うのに用いられる「RequestCycleSettings」クラスを取得するメソッドです。そして「setResponseRequestEncoding」は、リクエスト・レスポンスのテキストエンコーディングを設定するためのものです。ここでは、UTF-8にしておきます。
getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
getMarkupSettingsは、マークアップの設定に関するIMarkupSettingsクラスを取得するものです。そして「setDefaultMarkupEncoding」は、そのエンコーディングを指定するものです。こちらも、UTF-8にしておきます。
getMarkupSettings().setStripWicketTags(true);
これはマークアップのWicket用タグに関する設定です。setStripWicketTagsは、タグに挿入されたWicket用タグを取り除くためのもので、これをtrueにすることで、生成されたWebページからWicket用タグが消されるようになります。
続いて、getHomePageです。これは、表示するページ用のクラスを返すメソッドです。後述しますが、WicketではWebページは「WebPage」クラスを継承して作成されます。このクラスをここで返すと、アクセスした際にそのクラスによって生成されたページがクライアントに送られるようになります。
ここでは「Page1.class」というクラスを返していますね。ということは、このPage1というクラスを作成しておけば、このWebアプリケーションにアクセスするとそれが表示されるようになる、というわけです。