Blog Zenika

#CodeTheWorld

Web

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>.<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 la façon dont les données de vos commentaires sont traitées.

En savoir plus sur Blog Zenika

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture