Apache_Wicketとは - わかりやすく解説 Weblio辞書 (original) (raw)
Apache Wicket
開発元 | Apacheソフトウェア財団 |
---|---|
最新版 | 9.2.0 / 2020年11月19日 (4年前) (2020-11-19)[1] |
リポジトリ | git.apache.org/wicket.git ![]() |
プラットフォーム | クロスプラットフォーム |
種別 | Webアプリケーションフレームワーク |
ライセンス | Apache License 2.0 |
公式サイト | http://wicket.apache.org |
テンプレートを表示 |
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の仕様で必要と定められているweb.xmlのみである。
画面定義やページ・テンプレートは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を表示するプログラム例を以下に示す。
HelloWorld.html
テンプレートとなるXHTMLファイル。
ここにメッセージが表示される。HelloWorld.java
ページ・クラス。クラス名と同じ名前のHTML/XHTMLテンプレート(この場合、HelloWorld.html)を読み込む。
テンプレート中にあるwicket:id属性が"message"となっているタグの内容を指定した文字列("ハロー・ワールド!")に置き換える。
package org.wikipedia.ja.wicket;
import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage { /** * Constructor */ public HelloWorld() { add(new Label("message", "ハロー・ワールド!")); } }
HelloWorldApplication.java
Applicationオブジェクト。
アプリケーションをWebコンテナにロードするときの開始点となる。
package org.wikipedia.ja.wicket;
import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication { /** * Constructor. */ public HelloWorldApplication() { }
/**
* @see org.apache.wicket.Application#getHomePage()
*/
public Class getHomePage() {
return HelloWorld.class;
}
}
web.xml
Wicketサーブレット・クラスを定義し、クラスにアプリケーション・クラス名をパラメーターとして指定する。
Wicket Example HelloWorldApplication org.apache.wicket.protocol.http.WicketFilter applicationClassName org.wikipedia.ja.wicket.HelloWorldApplication HelloWorldApplication /*
脚注
参考書籍
- 「オープンソース徹底活用 WicketによるWebアプリケーション開発」 矢野勉 ISBN 978-4798022215
関連項目
外部リンク
表 話 編 歴 Apacheソフトウェア財団 | ||
---|---|---|
トップレベルプロジェクト | Accumulo(英語版) ActiveMQ Airflow Ambari(英語版) Ant Aries(英語版) Arrow(英語版) Apache HTTP Server APR Avro(英語版) Axis Axis2 Beam Bloodhound(英語版) Brooklyn(英語版) Buildr(英語版) Calcite(英語版) Camel(英語版) Cassandra Cayenne(英語版) Chemistry(英語版) CloudStack(英語版) Cocoon Cordova CouchDB cTAKES(英語版) CXF(英語版) Derby Directory(英語版) Drill Druid(英語版) Empire-db(英語版) Felix(英語版) Flex Flink(英語版) Flume(英語版) FreeMaker(英語版) Geronimo Giraph(英語版) Gump(英語版) Hadoop HBase Helix(英語版) Hive Impala(英語版) Jackrabbit(英語版) James Jena(英語版) Jini(英語版) JMeter(英語版) Kafka Kudu(英語版) Kylin(英語版) Lucene Mahout Maven MINA(英語版) mod_perl(英語版) MyFaces(英語版) NetBeans Nutch(英語版) NuttX(英語版) OFBiz(英語版) Oozie(英語版) OpenEJB OpenJPA OpenNLP OpenOffice ORC(英語版) PDFBox(英語版) Parquet(英語版) Phoenix(英語版) POI Pig(英語版) Pinot(英語版) Pivot Qpid(英語版) Roller RocketMQ(英語版) Samza(英語版) ServiceMix(英語版) Shiro(英語版) SINGA(英語版) Sling(英語版) Solr Spark Storm(英語版) SpamAssassin Struts 1 Struts 2(英語版) Subversion Apache Superset SystemDS(英語版) Tapestry Thrift Tika(英語版) Tomcat Traffic Server(英語版) Turbine(英語版) UIMA(英語版) Velocity Wicket Xalan Xerces XMLBeans Yetus(英語版) ZooKeeper | ![]() |
Commons | BCEL(英語版) BSF(英語版) Collections Daemon(英語版) DBUtils Email IO Jelly(英語版) Lang Apache Commons Logging(英語版) Math | |
Incubator | Apache MXNet(英語版) Apache Taverna(英語版) | |
その他のプロジェクト | Apache Batik Chainsaw(英語版) FOP Ivy(英語版) log4j | |
Attic | Abdera(英語版) Apache Apex(英語版) AxKit Beehive(英語版) Bluesky(英語版) iBATIS c++ Standard Library(英語版) Cactus(英語版) Click(英語版) Continuum(英語版) Apache Deltacloud(英語版) Apache Etch(英語版) Excalibur(英語版) Forrest(英語版) Hama(英語版) Harmony HiveMind(英語版) Jakarta Lenya(英語版) Marmotta(英語版) ODE(英語版) Shale Slide(英語版) Shindig Stanbol(英語版) Tuscany(英語版) Wave(英語版) Wink(英語版) XML | |
ライセンス | Apache License | |
![]() ![]() |
![]() |
この項目は、FLOSSに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(Portal:FLOSS)。 |
---|
典拠管理データベース: 国立図書館 ![]() |
ドイツ |
---|