web-dev-qa-db-ja.com

thymeleafでHTML5の通貨をフォーマットする方法

HTML 5で通貨をフォーマットすることにこだわっています。通貨をフォーマットする必要があるアプリケーションがあります。私は以下のコードスニペットを持っています

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

DAO abcから通貨値を読み取る場所は、フォーマットする必要があります。現在1200000.0ドルを印刷していますが、1,200,000.0 .0ドルを印刷する必要があります

30
giri

#numbersユーティリティオブジェクトを使用できます。このメソッドは次のとおりです。 http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html

例えば:

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

それにもかかわらず、インライン化せずにこれを行うこともできます(thymeleafが推奨する方法です):

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

アプリケーションが異なるものに対処する必要がある場合に備えて、[〜#〜] default [〜#〜]値(=ロケールに基づく)を使用することをお勧めします言語

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

Thymeleaf doc (より正確には 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')}
17
user1075613

formatCurrencyユーティリティでnumbersメソッドをより簡単に呼び出すことができます。

#numbers.formatCurrency(abc.value)

これにより、通貨記号も不要になります。

例:<span th:remove="tag" th:text="${#numbers.formatCurrency(abc.value)}">$100</span>

6
bphilipnyc

次のように、Thymeleafの数字ユーティリティオブジェクトを使用してインライン化します。

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

ビューでは、ドル記号($)が先頭に追加されます。

0
Isaac Riley