Java(Spring Boot)のThymeleafでString.formatをする方法

created
updated

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でもカンマ区切りが可能

チュートリアル:Thymeleafの使用

  • '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"を利用すると、省略して記述することが可能のため、コードが読みやすくなります。

TOP