目次
Java(Spring Boot)のThymeleafで数字をカンマ区切りにしたかったので、実装方法を調べました。
Thymeleafでは、String.formatを使うことが可能
<p th:text="${T(java.lang.String).format()}"></p>
T()でjava.lang.Stringを参照することができます。
th:textでString.formatをする方法
<p th:text="${T(java.lang.String).format('%,d', 10000)}"></p>
↓
<p>10,000</p>
数値をカンマ区切りにしたい場合は、上記のように記述することができます。これでThymeleafで、数字をカンマ区切りで表示することができました。
Thymeleafの#numbers.formatIntegerでもカンマ区切りが可能
- 'POINT'
- 'COMMA'
- 'WHITESPACE'
- 'NONE'
- 'DEFAULT'
が指定可能です。
<p th:text="${#numbers.formatInteger(10000, 3, 'COMMA')}"></p>
↓
<p>10,000</p>
標準でもあり、th:inline="text"でも簡単に使えるため、こちらがオススメです。なるべく、標準に沿いましょう。
th:inline="text"でString.format(numbers.formatInteger)をする方法
<div th:inline="text">
<p>[[*{#numbers.formatInteger(10000, 3, 'COMMA')}]]</p>
</div>
↓
<div>
<p>10,000</p>
</div>
<div th:inline="text">
<p>[[*{#numbers.formatInteger(10000, 3, 'POINT')}]]</p>
</div>
↓
<div>
<p>10.000</p>
</div>
<div th:inline="text">
<p>[[*{#numbers.formatInteger(10000, 3, 'WHITESPACE')}]]</p>
</div>
↓
<div>
<p>10 000</p>
</div>
th:inline="text"
を利用すると、省略して記述することが可能のため、コードが読みやすくなります。