Wicket : déterminer le chemin vers une ressource

En Wicket, tout est tellement automatisé que l’on oublie vite à quel point ses mécanismes nous simplifient la vie !
Besoin de créer un lien ? Il suffit de passer en paramètre de la méthode “setResponsePage” la classe de la page et c’est fait :

  1. this.add(new Link(“linkID”) {
  2. @Override
  3. public void onClick() {
  4. this.setResponsePage(MaPage.class);
  5. }
  6. });


Envie d’insérer une image ? Copiez-la dans le répertoire de l’application, ajoutez une “ResourceReference” puis insérez l’image avec le markup associé et le tour est joué : Wicket se chargera pour vous de retrouver l’image adéquate !

  1. ResourceReference image = new ResourceReference(MyClass.class, “myImage.png”);
  2. myPage.add(new Image(“imageID”, image));
  1. <image src=“” wicket:id=“imageID”/>

Hélas, tout n’est pas Wicket et il faut parfois recourir à d’autres langages comme, par exemple, JavaScript. Dans pareil cas, vous pouvez avoir besoin de connaître “textuellement” l’URL d’une page ou d’une image afin de pouvoir y faire référence. C’est ce que vous propose la méthode “urlFor()”

Adresses des Ressources

On souhaite obtenir l’adresse d’une ResourceReference associée à l’image “myImage.png” .
Cette image étant une ressource au sens Wicket, elle sera déployée dans le répertoire protégé “WEB-INF/classes”, et sera donc inaccessible directement. Pour contourner cette restriction, Wicket propose un mapping spécial (“/resources”) mais les bonnes pratiques de développement nous interdisent de l’utiliser explicitement. Il faut donc user du subterfuge suivant :

  1. String imagePath = RequestCycle.get().urlFor(image).toString();

… qui va renvoyer (par exemple) : “http://localhost:8080/wicketApp/resources/<myPackageName&gt;.<myClassName>/myImage.png”

Adresse des pages

De la même façon, on peut obtenir l’adresse d’une page :

  1. String pagePath = parent.urlFor(myPage.class, new PageParameters()).toString();

… va renvoyer la String permettant d’accéder à la page recherchée.
Avec Wicket, tout est simple !

Auteur/Autrice

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

%d blogueurs aiment cette page :