Bonjour à tous,
En cours de développement d'une application web Spring MVC, je rencontre actuellement un problème qui me dérange assez bien concernant le formatage du type java.lang.Double.
Exposition de mon problème (auquel je n'ai pas encore trouvé de solution !):
Dans mon modèle objet je stocke des objets de type types java.lang.Double.
Dans ma commande, pour faire la liaison avec la vue, j'utilise des objets java.lang.String.
Si à partir de mon application web j'encode un montant, p.ex 20000, pas de problème pour reconstruire l'objet java.lang.Double de mon modèle. Par contre si je reconstruis ma commande à partir de ce modèle (en vue de refaire l'affichage) j'ai l'affichage suivant : 20000.0
Huummm ennuyant ce '.0' Ok je trouve une solution miracle : la librairie JSTL :
Ce qui au niveau de ma JSP affiche correctement 20000.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <fmt:formatNumber type="number" maxFractionDigits="2" groupingUsed="false" value="${status.value}" />
Si j'encode une valeur décimale, p. ex. 20000.45, la reconstruction de mon objet java.lang.Double du modèle ne me pose pas problème non plus.
Par contre l'affichage avec la JSTL donne 20000,45
Ce qui fait que si je tente de sauvegarder ce nombre dans ce format ==>Je voudrais vous demander :
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.lang.NumberFormatException
1. Si vous connaîtriez un moyen pour uniformiser le séparateur de décimal ?
2. Que vaut-il mieux faire aux niveau des validateurs pour assurer que la java.lang.String de la commande peut être correctement convertie en java.lang.Double? Utiliser une expression régulière ou faire un catch de java.lang.NumberFormatException ?
D'avance je vous remercie pour vos propositions.
Partager