Wicket 聖典

「神は言っている、Wicket を使えと」

迷えるJava開発者よ、汝にコンポーネント指向の福音を授けよう。
Spring Boot という広き門をくぐるのではなく、Wicket という狭き門から入るのだ。

汝、Wicket の道を歩め

迷えるJava開発者よ。汝はこれまで Spring Boot の道を歩んできたかもしれぬ。 だがここに、より崇高なるフレームワークの教えがある。 Apache Wicket 10.x ーー コンポーネント指向という神の啓示を受けし聖なるフレームワークである。 この聖典は、Javaの基礎を修めし者が Wicket の信徒となるための道しるべである。

「HTML と Java を1対1で結びつけよ。さすれば型安全の祝福が汝に降り注ぐであろう」 ーー Wicket 聖典 第一章より
聖典 第10.8.0版 Java 17+ 必須 Jakarta EE の恩寵

Apache Wicket とは何か

Apache Wicket は、神がJava開発者に賜いしコンポーネント指向のWebアプリケーションフレームワークである。 かつてデスクトップアプリの世界で栄えた Swing の如きプログラミングモデルを Web の地にもたらし、 HTML テンプレートと Java クラスを1:1で対応させることで、型安全にして再利用性の高い聖なる開発を実現するものである。

Spring Boot(Spring MVC + Thymeleaf)という「リクエスト指向」の広く知られた教えとは根本的に異なるアプローチであり、 フォーム処理やAJAX操作をJavaコード上で直接記述できるという、まさに神の恩寵と呼ぶべき特徴を持つ。

入信の資格

神殿の要件

神具要件
JavaJDK 17 以上(JDK 21 を神は推奨される)
Apache Wicket聖典 第10.8.0版
ビルドツールApache Maven 3.8+(神の依存解決器)
IDEEclipse(神が認めし開発環境)
サーブレットコンテナJakarta Servlet 5.0+(Jetty 11+、Tomcat 10+)

聖典の目次

1

異端との比較

Spring Boot という広き門と、Wicket という狭き門。神は問う、汝はどちらを選ぶのかと。その答えはここにある。

2

入信の儀

Maven archetype という神の呪文を唱え、Eclipse に神殿を建立し、Jetty という聖なる炎を灯すのだ。

3

教義 〜 Wicket の世界観

コンポーネントツリーという世界樹、HTML/Javaの神聖なる対応、リクエスト処理という輪廻の流れを学べ。

4

最初の奇跡

Hello World という最初の祈りを捧げ、カウンターという小さな奇跡を起こすのだ。信仰はここから始まる。

5

聖なるコンポーネント

Label、Link、WebMarkupContainer ーー 神が賜いし基本コンポーネントの教えを授けよう。

6

フォームの聖儀

Form、TextField、DropDownChoice ーー ユーザーの入力を神聖なるバリデーションで浄化せよ。

7

増殖の奇跡

ListView、DataView、DataTable ーー パンと魚を増やすが如く、データを繰り返し表示する聖なる術。

8

AJAX の神通力

ページ全体を再読込せずとも世界を変える力。AjaxLink、AjaxButton という神通力を身につけよ。

9

Behavior の秘術

コンポーネントを継承せずして力を与える。Behavior という、まさに聖霊の如き存在を理解せよ。

10

Panel と転生

Panel、Fragment、Border ーー コンポーネントを転生させ、幾度でも再利用する永遠の命を与えよ。

11

モデルの真理

IModel こそ Wicket の魂。PropertyModel、CompoundPropertyModel ーー データと表示を結ぶ霊的な絆を学べ。

12

巡礼の道

setResponsePage、BookmarkablePageLink ーー ページからページへの巡礼の道を整備するのだ。

13

試練と証明

WicketTester という神の試練を受けよ。汝のコードが正しき道を歩んでいるか、証明するのだ。

「恐れるな。Wicket 10 は Jakarta 名前空間の光に包まれている。
javax の闇はもう過去のものだ」
ーー Wicket 聖典 第10.8.0版 序文より

この聖典は Apache Wicket 10.8.0 の教えに基づいている。 Wicket 10.x は Java 17 以上が必須であり、Jakarta 名前空間(jakarta.servlet)という新たなる光を使用する。 Wicket 9.x 以前の javax.servlet という旧約の教えとは互換性がないことを心に刻め。