Globals.LOCALE_KEY

29 janvier 2007

La question se pose souvent : comment fait-on dans un bean pour avoir une validation internationnalisée ? La réponse est moins évidente que dans une Action où la méthode getLocale() renvoie directement l'objet représentant la langue de l'utilisateur. En passant, un java.lang.Locale est un objet stockant 3 informations : la langue, le pays et la variante. Rien de bien compliqué, sauf que dans les technologies qui nous intéressent, c'est bien ici les préférences de l'utilisateur (celui qui est devant son navigateur) et non pas celles du serveur qui sont à considérer.

Bon ! dans une méthode validate(...), vous l'aurez remarqué, point de méthode vous retournant la fameuse Locale, il faut aller la chercher à la main. Voici donc l'extrait de code vous permettant de le faire :

import org.apache.struts.Globals

...

Locale locale = request.getSession()
                            .getAttribute(Globals.LOCALE_KEY);

Prévoyez la possibilité d'obtenir une référence null et donc une langue par défaut pour votre application. Et maintenant intéressez vous au framework  Validator des Jakarta Commons, vous y trouverez des classes réalisant les validations les plus communes.



Les commentaires sont clos.