【Java】Velocityで金額をカンマ区切りフォーマットで整える方法

java

Velocityテンプレートで金額部分にカンマ区切りとなるフォーマットを設定する方法を紹介します。

金額のフォーマットって一般的に使われているので、簡単に設定できるのかと思っていましたが、velocity-toolsというライブラリが必要でした。

[スポンサーリンク]

Velocityの導入方法

velocity-toolsが必要です。pom.xmlへ以下を追加して下さい。

<dependency>
	<groupId>org.apache.velocity</groupId>
	<artifactId>velocity</artifactId>
	<version>1.7</version>
</dependency>
<dependency>
	<groupId>org.apache.velocity</groupId>
	<artifactId>velocity-tools</artifactId>
	<version>2.0</version>
</dependency>

カンマ区切りフォーマットを設定する方法

こちらはJavaソースです。
numberToolをセットします。
金額はBigDecimalを使います。

VelocityContext context = new VelocityContext();
context.put("numberTool", new NumberTool());
BigDecimal price = new BigDecimal(10000);
context.put("price", price);

こちらは、vmファイル(test.vm)です。

価格: $numberTool.format("integer", $price)


実行結果

見事金額にカンマが入りました。

>実行結果
価格: 10,000

補足

vmファイルへintegerと指定していますが、int最大値を超える数値を設定してもカンマ区切りが崩れたりといったことはありません。

さいごに

Velocityで金額をカンマ区切りにする方法ってもう少し簡単にしてほしいところです。

わざわざvelocity-toolsを使わずとも標準でつけてくれればもっと使いやすいと思いながら使っていました。

それでは!