WicketIntroduction
lundi 30 juillet 2007
Wicket est un framework Web opensource qui simplifie le développement d’applications web basées sur des composants. L’un des avantages de Wicket est qu’il se base sur le HTML pour la présentation et sur Java pour la navigation, les contrôles et les traitements, pas besoin d’utiliser un compilateur comme pour GWT. De plus, il est plus simple à utiliser que Struts et JSF
Un exemple de base
L’objectif est de créer une application HelloWorld pour débuter, d’autres articles suivront sur les formulaires, les listes, l’intégration avec Spring, les tests unitaires JUnit, Ajax.
- Déclaration dans le fichier pom.xml de Maven 2:
<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”> … <dependencies> <dependency> <groupId>wicket</groupId> <artifactId>wicket</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.13</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <resources> <resource> <filtering>false</filtering> <directory>src/main/java</directory> <includes> <include>**</include> </includes> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> </build> </project>
- Déclaration de la servlet Wicket dans le fichier web.xml
<?xml version=“1.0” encoding=“UTF-8”?> <web-app xmlns=“http://java.sun.com/xml/ns/j2ee” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd” version=“2.4”> <display-name>wicket-test</display-name> <servlet> <servlet-name>wicket-servlet</servlet-name> <servlet-class>wicket.protocol.http.WicketServlet</servlet-class> <init-param> <param-name>applicationClassName</param-name> <param-value>jfhelie.wicket.HelloWorldApplication</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>wicket-servlet</servlet-name> <url-pattern>/helloworld/*</url-pattern> </servlet-mapping> </web-app>
La classe jfhelie.wicket.HelloWorldApplication correspond à la page appelée au lancement de l’application, elle permet de définir des informations globales à l’application.
- Créer la classe jfhelie.wicket.HelloWorldApplication
package jfhelie.wicket;
import wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
public Class getHomePage() {
return HelloWorld.class;
}
protected void init() {
super.init();
}
}
Cette classe référence la classe HelloWorld qui sera lancée au démarrage de l’application
- Créer le fichier HelloWorld.html dans le package jfhelie.wicket
<html> <title>Welcome to Wicket Application</title> <body> Welcome To Wicket Mr <span wicket:id=“message”>Message goes here</span> </body> </html>
- Créer la classe jfhelie.wicket.HelloWorld:
package jfhelie.wicket;
import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
public HelloWorld() {
super();
add(new Label(“message”, “Jeff”));
}
}
- Lancer mvn install pour que les fichier html soient copiés dans le répertoire target/classes
- Tester la page
http://localhost:8090/wicket-test/helloworld