Apache Wicket 10 入門ガイド

このサイトは、Javaの基本は理解しているがApache Wicketを使ったことのない開発者を対象とした、 Wicket 10.x の日本語チュートリアルです。Mavenでのプロジェクト作成からコンポーネントの使い方まで、 Eclipse を使った開発を前提にステップバイステップで解説します。

Wicket 10.8.0 Java 17+ Jakarta EE 対応

Apache Wicket とは

Apache Wicket は、Javaで書かれたコンポーネント指向のWebアプリケーションフレームワークです。 SwingのようなデスクトップアプリのプログラミングモデルをWebに持ち込み、 HTML テンプレートと Java クラスを1:1で対応させることで、型安全で再利用性の高いWeb開発を実現します。

Spring Boot(Spring MVC + Thymeleaf)のような「リクエスト指向」のフレームワークとは根本的に異なるアプローチを取っており、 フォーム処理やAJAX操作をJavaコード上でシンプルに記述できるのが大きな特徴です。

対象読者

前提環境

項目要件
JavaJDK 17 以上(JDK 21 推奨)
Apache Wicket10.8.0
ビルドツールApache Maven 3.8+
IDEEclipse(2023年以降のバージョン推奨)
サーブレットコンテナJakarta Servlet 5.0+(Jetty 11+、Tomcat 10+)

目次

1

Spring Boot との比較

コンポーネント指向 vs リクエスト指向。Wicketのメリット・デメリットを Spring Boot と比較して解説します。

2

環境構築

Maven archetype でプロジェクトを作成し、Eclipse にインポートして起動するまでの手順を解説します。

3

Wicket のアーキテクチャ

コンポーネントツリー、HTML/Javaの1:1対応、リクエスト処理の流れ、セッション管理を理解します。

4

はじめての Wicket アプリ

quickstart プロジェクトの構成を読み解き、Hello World から一歩進んだアプリを作ります。

5

基本コンポーネント

Label、Link、WebMarkupContainer など、Wicket の基本的なコンポーネントの使い方を解説します。

6

フォームコンポーネント

Form、TextField、DropDownChoice、バリデーションなど、フォーム関連のコンポーネントを解説します。

7

リピータ

ListView、DataView、DataTable を使ったデータの繰り返し表示とページングを解説します。

8

AJAX 対応

AjaxLink、AjaxButton、AjaxRequestTarget を使った非同期更新の実装方法を解説します。

9

Behavior

コンポーネントにプラグインのように機能を追加する Behavior の仕組みとカスタム Behavior の作成方法を解説します。

10

Panel と再利用

Panel、Fragment、Border を使ったコンポーネントの再利用パターンを解説します。

11

モデル

IModel、PropertyModel、CompoundPropertyModel、LambdaModel など、Wicket のデータバインディングの仕組みを解説します。

12

ページ遷移

setResponsePage、BookmarkablePageLink、PageParameters、マウントURLによるページ遷移を解説します。

13

テスト

WicketTester を使ったページレンダリング、フォーム送信、AJAX のユニットテスト方法を解説します。

14

SEO対策・レンダリング戦略・canonical

デフォルトの REDIRECT_TO_BUFFER が SEO に与える影響と、ONE_PASS_RENDER への切り替え方、canonical タグの実装方法を解説します。

このガイドでは Apache Wicket 10.8.0 を対象としています。 Wicket 10.x は Java 17 以上が必須で、Jakarta 名前空間(jakarta.servlet)を使用します。 Wicket 9.x 以前の javax.servlet とは互換性がありませんのでご注意ください。