Apache Wicket(アパッチ・ウィケット)は、Apacheソフトウェア財団のApache Wicketプロジェクトにて開発されているオープンソースのJava Webアプリケーションフレームワークである。単にWicketと呼ばれることが多い。本頁では以下、Wicketと記述する。

概要 元々はJonathan Lockeの作成したフレームワークであり、2005年6月にVer1.0が発表された。

2007年6月にApacheのトップレベルプロジェクトになった。

類似するWebアプリケーションフレームワークとして、JavaServer FacesやApache Tapestryが挙げられる。

wicketには、英語では「小さな門」「(銀行などの)格子窓口」の意味の他、クリケットで使用される「3本の杭と、杭の上部に2本の横木を乗せた柱状のもの」(三柱門)の意味がある。

2011年にVer1.5をリリースした後のメジャーバージョンアップは、2012年のVer6.0となる。

特徴 Webアプリケーションフレームワークで最も普及しているもののひとつはApache Struts(以下、Struts)であったが、StrutsはJavaで作られているにもかかわらず、Javaらしいオブジェクト指向開発を実現していない。Strutsはサーブレットを設定ファイルで制御することを目標とし、さまざまな要素を設定ファイルに記述することで、開発効率を上げようとしていた。

Wicketは、これとは逆の発想で、Javaのオブジェクト指向言語としての機能を最大限に活用できるように作られている。

Wicketから見た場合、ウェブページもオブジェクトであり、その上に置かれる文字列やタグなどもすべてオブジェクトとして取り扱う。そのため、Javaプログラムによってウェブページを継承したり、機能を委譲したり、独自に拡張することができる。

Wicketが利用する定義ファイルは、Java Servletの仕様で必要と定められているのみである。

画面定義やページ・テンプレートはHTMLファイル、またはXHTMLファイルで行う。Wicketが独自拡張したタグはHTMLタグの置き換えや処理を記述するのではなく、Wicketが解釈する範囲指定、意味にづけになっている。また、HTMLタグに独自拡張した属性を必要に応じて記述する。このため、JSPファイルと異なり、通常のブラウザで表示させたりAdobe DreamweaverのようなWebオーサリングツールで表示、編集することが容易である。

Wicket 独自拡張 Wicketが独自に拡張したタグには以下のものがある。 wicket:link wicket:panel wicket:fragment wicket:border wicket:body wicket:extend wicket:child wicket:message wicket:remove wicket:head wicket:enclosure wicket:container

Wicketが独自に拡張した属性には以下のものがある。 wicket:id wicket:message wicket:enclosure wicket:for wicket:unknown wicket:scope

プログラム例 Hello worldを表示するプログラム例を以下に示す。

脚注

参考書籍

関連項目 POJO

外部リンク

Apache Wicket Wicket-ja twitter apache_wicket