Définir l’endroit où les fichiers “templates” sont chargés

Wicket par nicogiard Add comments

Certaines personnes n’aiment pas beaucoup être obligé de poser leurs fichers templates (html) à coté de la classe java (donc dans un package).
Certes, moi ça ne me dérange absolument pas, mais je vais tout de même vous exposer une solution pour placer ces fichiers où vous le souhaitez.

Premièrement, définissez une nouvelle classe héritant de ResourceStreamLocator :

public class PathStripperLocator extends ResourceStreamLocator
{
  public PathStripperLocator()
  {
  }
 
  public IResourceStream locate(final Class clazz, final String path)
  {
    IResourceStream located = super.locate(clazz, trimFolders(path));
    if (located != null)
    {
      return located;
    }
    return super.locate(clazz, path);
  }
 
  private String trimFolders(String path)
  {
    return path.substring(path.lastIndexOf("/") + 1);
  }
}

Deuxièmement, surchargez la méthode WebApplication.init() pour ajouter le nouvel IResourceStreamLocator :

public class MonApplication extends WebApplication
{
  @Override
  protected void init()
  {
    super.init();
    IResourceSettings resourceSettings = getResourceSettings();
    resourceSettings.addResourceFolder("src/main/webapp"); // mettez le chemin que vous souhaitez
    resourceSettings.setResourceStreamLocator(new PathStripperLocator());
  }
 
  ...
}

Je n’ai pas encore pu completement tester cette façon de faire, donc n’hésitez pas à tester et à venir ici pour partager vos expériences.

Partagez:
  • E-mail this story to a friend!
  • Bookmarks .fr
  • Google
  • description
  • Digg
  • Facebook
  • del.icio.us
  • Wikio
  • YahooMyWeb

3 Responses to “Définir l’endroit où les fichiers “templates” sont chargés”

  1. Kokoni Says:

    Ah oui tiens, je vais tester ça. Je fais parti de ceux qui aime bien ranger les choses à leur place, à défaut de le faire IRL …

  2. Grégo Says:

    Je me serais bien permis une vulgarité suite à la remarque de Nikoko, mais je ne suis pas encore assez à mon aise ici.

  3. nicogiard Says:

    T’as bien fait :x

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in