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 FacesApache 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が独自に拡張した属性には以下のものがある。

プログラム例

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 /*

脚注

  1. ^ Apache Wicket 9.2.0 released

参考書籍

関連項目

外部リンク

ポータル FLOSS

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
Category Commons
Webアプリケーションフレームワーク
ASP.NET ASP.NET MVC ASP.NET Web Forms Umbraco
Groovy Grails
Java Apache Struts GWT ICEfaces JavaServer Faces Play Spring Tapestry WebWork Wicket ZK
JavaScript Angular/AngularJS Backbone.js Dojo Toolkit Express.js Ext JS jQuery Knockout.js MooTools Node.js Prototype React Rico Sencha Touch Vue.js Hono ElysiaJS Qwik
Perl Catalyst Mojolicious
PHP CakePHP CodeIgniter Drupal eZ Publish FuelPHP Grav Laravel PRADO Symfony TYPO3 Yii Zend Silex
Python CherryPy Django Flask Plone Pylons Tornado TurboGears web2py Zope
Ruby Ruby on Rails Sinatra Padrino
Scala Lift Play
カテゴリ
この項目は、FLOSSに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPortal:FLOSS)。
典拠管理データベース: 国立図書館 ドイツ