Looking for wicket Keywords? Try Ask4Keywords

wicketErste Schritte mit Wicket


Bemerkungen

Wicket ist ein komponentenbasiertes Framework, das es in krassem Gegensatz zu einigen der früheren Lösungen für die manchmal monotone Aufgabe der Webprogrammierung stellt. Wie andere Frameworks baut Wicket auf der Servlet-API von Sun auf.

Im Gegensatz zu Frameworks wie Struts oder Spring MVC wird der Entwickler, der Wicket verwendet, meist aus der Anforderung / Antwort-Eigenschaft entfernt, die dem Web und den Servlets inhärent ist. Statt Controller zu bauen, die viele Benutzer und Threads gleichzeitig bedienen müssen, Anforderungen aufnehmen, Antworten zurückgeben und niemals Zustände speichern, denkt der Wicket-Entwickler in Bezug auf zustandsbehaftete Komponenten. Anstatt einen Controller oder eine Aktionsklasse zu erstellen, erstellt er eine Seite, platziert Komponenten darauf und definiert, wie jede Komponente auf Benutzereingaben reagiert.

Wicket verwendet einfaches XHTML für das Templating. Jede Komponente ist an ein benanntes Element in der XHTML gebunden und übernimmt die Verantwortung für das Rendern dieses Elements in der endgültigen Ausgabe. Die Seite ist einfach die Komponente der obersten Ebene und wird mit genau einer XHTML-Vorlage gepaart.

Jede Komponente wird durch ein eigenes Modell unterstützt, das den Status der Komponente darstellt. Das Framework hat keine Kenntnis darüber, wie Komponenten mit ihren Modellen interagieren, die als undurchsichtige Objekte behandelt werden, die automatisch serialisiert werden und zwischen Anforderungen bestehen bleiben. Komplexere Modelle können jedoch abnehmbar gemacht werden und mit Haken versehen werden, um ihre eigene Lagerung und Wiederherstellung zu Beginn und am Ende jedes Anforderungszyklus zu arrangieren.

In Wicket wird der gesamte serverseitige Status automatisch verwaltet. Sie sollten niemals direkt ein HttpSession-Objekt oder einen ähnlichen Wrapper zum Speichern des Status verwenden. Stattdessen wird der Status Komponenten zugeordnet. Jede serverseitige Seitenkomponente enthält eine verschachtelte Hierarchie von Stateful-Komponenten, wobei das Modell jeder Komponente letztendlich ein POJO (Plain Old Java Object) ist.

Versionen

Ausführung Veröffentlichungsdatum
8.0.0-M4 2017-02-07
7.6.0 2016-12-29
6.26.0 2016-12-29

Installation oder Setup

Mein erstes Wicket-Setup, App zeigt Hello World auf dem Startbildschirm

import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
    
    public HelloWorldApplication() {
    }
    
    @Override
    public Class getHomePage() {
        return HelloWorld.class;
    }
}
 

HalloWelt.java

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
    public HelloWorld() {
        add(new Label("message", "Hello World!"));
    }
}
 

HelloWorld.html

<html>
   <body>
       <span wicket:id="message">Message goes here</span>
    </body>
</html>
 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>My first Wicket App</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.apache.wicket.examples.helloworld.HelloWorldApplication</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>HelloWorldApplication</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
 

pom.xml

    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-core</artifactId>
        <version>${wicket.version}</version>
    </dependency>