Il est possible de configurer Wicket pour qu’il utilise des “convertisseurs” par défaut pour des types particuliers (du style les dates, les boolean, etc…)

Pour ce faire, il faut, dans votre classe [Application], surcharger la méthode [newConverterLocator]

@Override
protected IConverterLocator newConverterLocator() {
  ConverterLocator converterLocator = (ConverterLocator) super.newConverterLocator();
  converterLocator.set(Boolean.class, new BooleanConvertor());
  converterLocator.set(Date.class, new DateConverter());
  return converterLocator;
}

Il vous faut après ça définir le code de votre Converter personnalisé, par exemple pour un converter de boolean ça donnerait :

public class BooleanConvertor extends org.apache.wicket.util.convert.converters.BooleanConverter {
  @Override
  public String convertToString(Object _bool, Locale _locale) {
	  if (_bool instanceof Boolean) {
      Boolean b = (Boolean) _bool;
      if (BooleanUtils.isTrue(b)) {
        return "Oui";
      } else if (BooleanUtils.isFalse(b)) {
        return "Non";
      }
    }
    return super.convertToString(_bool, _locale);
  }
}

Ce qui permet par exemple d’avoir le résultat suivant :

Framework Supprimé
Wicket Non
GWT Oui

Plutot que l’affichage par défaut :

Framework Supprimé
Wicket false
GWT true

N’hésitez pas à regarder dans le package org.apache.wicket.util.convert.converters pour voir les converters que wicket utilise par défaut.

Imprimer cet article Imprimer cet article

  2 Responses to “Wicket & les IConverterLocator”

  1. sympa merci pour cette astuce!

  2. Merci Loïc, d’ailleurs si tu as des commentaires concernant le code n’hésite pas!

 Leave a Reply

(required)

(required)


one + = 8

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

   
© 2011 NooCodeCommit Suffusion theme by Sayontan Sinha