Jakarta EE JSPでJSTLを使った数値フォーマットの方法を初心者向けに完全解説
生徒
「Jakarta EEのJSPで金額や数値を表示するとき、そのまま出すと見づらいことがあるんですが、整形する方法はありますか?」
先生
「JSTLのフォーマットタグを使うと、数値を見やすい形に整形できます。」
生徒
「Javaのコードを書かずに、JSPだけでできるんですか?」
先生
「はい、EL式とJSTLを組み合わせることで、表示専用のJSPをきれいに書けます。」
1. Jakarta EE JSPで数値フォーマットが必要な理由
Jakarta EEのWebアプリケーションでは、金額や数量、合計値などの数値を画面に表示する場面が多くあります。 しかし、数値をそのまま表示すると桁区切りがなく、利用者にとって非常に分かりづらくなります。 特に金額表示では、カンマ区切りや小数点の扱いが重要になります。 JSPでは表示を担当する役割を保つために、JSTLを使って数値を整形する方法が推奨されています。
2. JSTLフォーマットタグの役割
JSTLフォーマットタグは、数値や日付を表示用に整形するためのタグライブラリです。 Jakarta EE JSPでは、数値フォーマットに fmt:formatNumber タグがよく使われます。 JavaのDecimalFormatなどを直接使わなくても、JSP上で簡単に数値の表示形式を指定できます。 表示ロジックをJSP側にまとめることで、コードの役割分担が明確になります。
3. JSTLフォーマットタグを使うための準備
数値フォーマットを行うには、JSPファイルの先頭でJSTLコアタグとフォーマットタグを宣言します。 この設定を行うことで、数値整形に関するタグが使用可能になります。 JSTLを使うJSPでは、必ず最初に設定しておきましょう。
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
<%@ taglib prefix="fmt" uri="jakarta.tags.fmt" %>
4. Servletから数値データをJSPに渡す基本
数値フォーマットを行う前に、ServletからJSPへ数値を渡す流れを理解しておくことが重要です。 Servlet側で計算結果や金額を用意し、リクエストスコープに設定します。 JSPではEL式でその値を参照し、JSTLフォーマットタグで表示形式を整えます。
int totalPrice = 1234567;
request.setAttribute("price", totalPrice);
request.getRequestDispatcher("/price.jsp").forward(request, response);
5. fmtformatNumberを使った基本的な数値整形
JSTLで数値を整形する際に中心となるのが fmt:formatNumber タグです。 このタグを使うことで、桁区切り付きの数値表示が簡単に実現できます。 金額や数量を見やすく表示するための基本的な方法として覚えておきましょう。
<fmt:formatNumber value="${price}" />
6. カンマ区切りを指定した数値表示
fmt:formatNumberでは、type属性を指定することで表示形式を制御できます。 numberタイプを指定すると、カンマ区切り付きの数値が表示されます。 金額や集計値の表示でよく使われる形式です。
<fmt:formatNumber value="${price}" type="number" />
7. 通貨形式での数値フォーマット
金額を表示する場合には、通貨形式でのフォーマットが便利です。 fmt:formatNumberのtype属性にcurrencyを指定すると、通貨記号付きで表示されます。 表示を分かりやすくするために、用途に応じて使い分けることが重要です。
<fmt:formatNumber value="${price}" type="currency" />
8. 小数点を含む数値の整形
割合や計算結果などでは、小数点を含む数値を表示したい場合があります。 fmt:formatNumberでは、pattern属性を使って小数点の表示桁数を制御できます。 表示形式を明示的に指定することで、統一感のある画面になります。
<fmt:formatNumber value="1234.567" pattern="#,##0.00" />
9. JSTLとELを組み合わせた数値表示の考え方
JSTLの数値フォーマットタグは、EL式と組み合わせることで非常に扱いやすくなります。 Servletで用意した数値をELで参照し、JSP側で整形して表示する流れが明確になります。 この構成により、JSPは表示専用という役割をしっかり保つことができます。 初心者にとっても理解しやすい設計になります。
10. 数値フォーマットをJSPで行う際の注意点
JSTLによる数値フォーマットは表示用途に限定して使うことが大切です。 数値計算やビジネスロジックはServletやサービス層で行うべきです。 JSPでは、受け取った数値を整形して表示するだけに留めましょう。 このルールを守ることで、保守性の高いJakarta EEアプリケーションになります。
11. 初心者がJSTL数値フォーマットを学ぶメリット
JSTLを使った数値フォーマットを学ぶことで、JSPでの表示品質が大きく向上します。 Javaコードを書かずに見やすい数値表示ができるため、HTMLに近い感覚で画面を作成できます。 Jakarta EE JSPとJSTLの基本を理解するうえで、数値フォーマットは非常に重要なテーマです。 実務でも頻繁に使われるため、早い段階で身につけておく価値があります。