wicketCommencer avec le guichet


Remarques

Wicket est un framework basé sur des composants, ce qui contraste fortement avec certaines des solutions antérieures à la tâche parfois monotone de la programmation Web. À l'instar des autres frameworks, Wicket s'appuie sur l'API de servlet de Sun.

Cependant, contrairement aux frameworks tels que Struts ou Spring MVC, le développeur utilisant Wicket est en grande partie retiré de la nature de la requête / réponse inhérente au Web et aux Servlets. Au lieu de créer des contrôleurs devant desservir plusieurs utilisateurs et threads simultanément, en acceptant des requêtes, en renvoyant des réponses et en ne stockant jamais aucun état, le développeur Wicket pense en termes de composants avec état. Au lieu de créer un contrôleur ou une classe d'action, il crée une page, y place des composants et définit comment chaque composant réagit aux entrées de l'utilisateur.

Le guichet utilise du XHTML simple pour la modélisation. Chaque composant est lié à un élément nommé dans le XHTML et devient responsable du rendu de cet élément dans la sortie finale. La page est simplement le composant contenant le plus haut niveau et est associée à exactement un modèle XHTML.

Chaque composant est soutenu par son propre modèle, qui représente l'état du composant. L'infrastructure n'a pas connaissance de la manière dont les composants interagissent avec leurs modèles, qui sont traités comme des objets opaques automatiquement sérialisés et persistants entre les requêtes. Des modèles plus complexes, cependant, peuvent être rendus détachables et fournir des crochets pour organiser leur propre stockage et leur restauration au début et à la fin de chaque cycle de demande.

Dans Wicket, tous les états côté serveur sont automatiquement gérés. Vous ne devez jamais utiliser directement un objet HttpSession ou un wrapper similaire dans l'état du magasin. Au lieu de cela, l'état est associé aux composants. Chaque composant de page côté serveur contient une hiérarchie imbriquée de composants avec état, où le modèle de chaque composant est finalement un objet POJO (Plain Old Java Object).

Versions

Version Date de sortie
8.0.0-M4 2017-02-07
7.6.0 2016-12-29
6.26.0 2016-12-29

Installation ou configuration

Ma première configuration Wicket, application montrant Hello World sur l'écran d'accueil:

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

HelloWorld.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>