web-dev-qa-db-fra.com

Comment formater la devise en HTML5 avec thymeleaf

Je suis coincé avec le formatage de la devise en HTML 5. J'ai une application où je dois formater la devise. J'ai l'extrait de code ci-dessous 

 <td class="right"><span th:inline="text">$ [[${abc.value}]]</span></td>

Où de DAO abc je lis la valeur monétaire, il devrait être formaté. Actuellement en train d’imprimer $ 1200000.0 il devrait imprimer $ 1.200.000.0 .0

25
giri

Vous pouvez utiliser l'objet utilitaire #numbers, dont vous pouvez voir les méthodes ici: http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html

Par exemple:

<span th:inline="text">$ [[${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}]]</span>

Néanmoins, vous pouvez aussi le faire sans aligner (ce qui est la méthode recommandée pour le thymeleaf):

<td>$ <span th:text="${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}">10.00</span></td>
44
Daniel Fernández

Je recommande d'utiliser la valeur DEFAULT (= en fonction des paramètres régionaux) au cas où votre application doit traiter plusieurs langues

${#numbers.formatDecimal(abc.value, 1, 'DEFAULT', 2, 'DEFAULT')}

À partir de doc Thymeleaf (plus précisément NumberPointType ):

/* 
 * Set minimum integer digits and thousands separator: 
 * 'POINT', 'COMMA', 'NONE' or 'DEFAULT' (by locale).
 * Also works with arrays, lists or sets
 */
${#numbers.formatInteger(num,3,'POINT')}
${#numbers.arrayFormatInteger(numArray,3,'POINT')}
${#numbers.listFormatInteger(numList,3,'POINT')}
${#numbers.setFormatInteger(numSet,3,'POINT')}

/*
 * Set minimum integer digits and (exact) decimal digits, and also decimal separator.
 * Also works with arrays, lists or sets
 */
${#numbers.formatDecimal(num,3,2,'COMMA')}
${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')}
${#numbers.listFormatDecimal(numList,3,2,'COMMA')}
${#numbers.setFormatDecimal(numSet,3,2,'COMMA')}
13
user1075613

Vous utiliseriez en ligne l'objet de l'utilitaire de nombres de Thymeleaf comme suit:

<span>[[${#numbers.formatCurrency(abc.value)}]]</span>

Dans la vue, le signe dollar ($) sera même préfixé pour vous.

0
Isaac Riley