| 開発者 | Apache ソフトウェア財団 |
|---|---|
| 安定版リリース | 10.0.0 [1]
/ 2024-03-11; 8か月前 |
| リポジトリ | github.com/apache/wicket |
| 書かれた | ジャワ |
| タイプ | Web アプリケーション フレームワーク |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | ウィケット |
Apache Wicket(通称Wicket )は、 Javaプログラミング言語用のコンポーネントベースのWebアプリケーションフレームワークで、概念的にはJavaServer FacesやTapestryに似ています。2004年4月にJonathan Lockeによって最初に作成されました。バージョン1.0は2005年6月にリリースされました。 2007年6月にApacheのトップレベルプロジェクトに昇格しました。 [2]
根拠
従来のモデル ビュー コントローラ(MVC) フレームワークは、リクエスト全体とページ全体に基づいて動作します。各リクエスト サイクルでは、受信リクエストがコントローラオブジェクトのメソッドにマッピングされ、その後、通常はモデルからデータを引き出して、専用のテンプレート マークアップで記述されたビューにデータを入力することで、送信レスポンス全体が生成されます。これにより、アプリケーションの制御フローがシンプルで明確になりますが、コントローラでの コードの再利用が難しくなる可能性があります。
対照的に、Wicket はSwingなどのステートフル GUIフレームワークを忠実に模倣しています。Wicket アプリケーションはコンポーネントのツリーであり、Swing コンポーネントがマウスやキーストロークのイベントに反応するのと同じように、リスナーデリゲートを使用してリンクやフォームに対するHTTPリクエストに反応します。Wicket はコンポーネント ベースのフレームワークとして分類されます。
デザイン
Wicket はテンプレート作成にプレーンなXHTML を使用します (これにより、プレゼンテーションとビジネス ロジックが明確に分離され、従来のWYSIWYG設計ツール[3]を使用してテンプレートを編集できます)。各コンポーネントは XHTML 内の名前付き要素にバインドされ、最終出力でその要素をレンダリングする役割を担います。ページは単に最上位のコンポーネントを含み、1 つの XHTML テンプレートとペアになっています。特別なタグを使用すると、個々のコンポーネントのグループをパネルと呼ばれる単一のコンポーネントに抽象化できます。パネルは、そのページ、他のページ、または他のパネルで全体を再利用できます。
各コンポーネントは、コンポーネントの状態を表す独自のモデルによって支えられています。フレームワークは、コンポーネントがモデルとどのようにやり取りするかを認識していません。モデルは、リクエスト間で自動的にシリアル化され、永続化される不透明なオブジェクトとして扱われます。ただし、より複雑なモデルは取り外し可能にして、各リクエスト サイクルの開始時と終了時に独自のストレージと復元を手配するためのフックを提供することができます。Wicket は特定のオブジェクト永続性またはORMレイヤーを必須としていないため、アプリケーションは多くの場合、 Hibernateオブジェクト[引用が必要]、EJB、またはPOJOの組み合わせをモデルとして使用します。
Wicket では、サーバー側の状態はすべて自動的に管理されます。状態を保存するために HttpSession オブジェクトや同様のラッパーを直接使用しないでください。代わりに、状態はコンポーネントに関連付けられます。各サーバー側のページ コンポーネントは、ステートフル コンポーネントのネストされた階層を保持します。各コンポーネントのモデルは、最終的には POJO (Plain Old Java Object) になります。
Wicket はシンプルさを目指しています。Wicket には学習する構成ファイルはありません。Wicket は、コンポーネント構造に対して一貫したアプローチを採用したシンプルなクラス ライブラリです。
例
次の 4 つのファイルを含むHello World Wicketアプリケーション:
- こんにちは、世界。
- XHTML テンプレート。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xmlns:wicket= "http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang= "en" lang= "en" >
<body>
<span wicket:id= "message" id= "message" >ここにメッセージを入力します</span> </body> </html>
- HelloWorld.java
- テンプレートにバインドされるページ コンポーネント。次に、子コンポーネント (「message」という名前の Label コンポーネント) をバインドします。
パッケージorg.wikipedia.wicket ;
org.apache.wicket.markup.html.WebPageをインポートします。org.apache.wicket.markup.html.basic.Labelをインポートします。
public class HelloWorld extends WebPage { /** * コンストラクター */ public HelloWorld () { add ( new Label ( "message" , "Hello World!" )); } }
- HelloWorldアプリケーション.java
- ホームページへのリクエストを HelloWorld ページ コンポーネントにルーティングするメイン アプリケーション クラス。
パッケージorg.wikipedia.wicket ;
org.apache.wicket.protocol.http.WebApplicationをインポートします。
public class HelloWorldApplication extends WebApplication { /** * コンストラクター。 */ public HelloWorldApplication () { }
/**
* @see org.apache.wicket.Application#getHomePage()
*/
public Class getHomePage () { return HelloWorld . class ; } }
- ウェブ
- サーブレットアプリケーションのデプロイメント記述子。サーブレットのデフォルト ハンドラーとして Wicket をインストールし、起動時に HelloWorldApplication がインスタンス化されるようにします。
<?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> Wicket の例</display-name> <filter> <filter-name> HelloWorldApplication </filter-name> <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name> applicationClassName </param-name> <param-value> org.wikipedia.wicket.HelloWorldApplication </param-value> </init-param> </filter> <filter-mapping> <filter-name> HelloWorldApplication </filter-name> <url-pattern> /* </url-pattern> </filter-mapping> </web-app>
コンポーネント
フォーム、リンク、リピーターなどの基本コンポーネントが組み込まれています。
リリース
参照
参考文献
- セレガッティ・ロンゴ、ジョアン・サヴィオ(2013年8月26日)。 Instant Apache Wicket 6 (第 1 版)。パックト出版。 p. 54.ISBN 978-1783280018。
- マダー、ヨッヘン (2012 年 3 月 28 日)。ウィケット: コンポーネントとオブジェクト (第 1 版)。エントウィックラー。 p. 220.ISBN 978-3868020816. 2010年12月23日時点のオリジナルよりアーカイブ。2009年1月23日閲覧。
- Vaynberg, Igor (2011 年 5 月 15 日)。Apache Wicket Cookbook (第 1 版)。Packt Publishing。p . 312。ISBN 978-1-84951-160-5。
- ダショースト、マルティン;ヒレニウス、イールコ (2008 年 9 月 15 日)。Wicket in Action (第 1 版)。マニング出版物。 p. 392.ISBN 978-1-932394-98-6。
- グルムルシー、カルティク(2006 年 9 月 7 日)。プロウィケット (第 1 版)。を押します。 p. 328.ISBN 1-59059-722-2. 2010年12月23日時点のオリジナルよりアーカイブ。2009年1月23日閲覧。
注記
- ^ https://wicket.apache.org/news/2024/03/。
{{cite web}}:欠落または空|title=(ヘルプ) - ^ ダショースト、マルティン (2007-07-20)。 「Wicket が Apache インキュベーションを卒業」. 2008 年 3 月 7 日に取得。
- ^ Carleton, Daniel (2007-10-12). 「Java Web Development the Wicket Way」. DevX. 2008年3月10日時点のオリジナルよりアーカイブ。 2008年3月7日閲覧。
- ^ Apache Wicket 10 の発表: Java で最新の Web アプリケーションを構築しましょう!。wicket.apache.org。2024 年 3 月 11 日に取得。
- ^ Apache Wicket 9 の発表: 現代の Java の世界に入りましょう!。wicket.apache.org。2020 年 10 月 5 日に取得。
- ^ Apache Wicket 8 の発表: 少ないコードで、より多くの成果を実現。wicket.apache.org。2018 年 5 月 22 日に取得。
- ^ Apache Wicket v7.0 がリリースされました。wicket.apache.org。2018 年 4 月 16 日に取得。
- ^ Apache Wicket v6.0.0 がリリースされました。wicket.apache.org。2020 年 10 月 5 日に取得。
- ^ Apache Wicket - Apache Wicket が Wicket 1.5 をリリース。Wicket.apache.org。2013 年 8 月 13 日に取得。2014 年 10 月 6 日にWayback Machineにアーカイブされました。
- ^ Apache Wicket - Apache Wicket 1.4 は型安全性を次のレベルに引き上げます。2012 年 4 月 25 日アーカイブ、Wayback Machine。Wicket.apache.org。2013 年 8 月 13 日に取得。
外部リンク
公式サイト
