Jul 162009
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


sympa merci pour cette astuce!
Merci Loïc, d’ailleurs si tu as des commentaires concernant le code n’hésite pas!