JSPで通貨や数値を解析するには?fmt:parseNumberタグの使い方
<fmt:parseNumber>タグは、JSTL(JSP Standard Tag Library)のフォーマットライブラリに含まれるタグの一つで、数値・パーセント・通貨といった文字列を解析(パース)して、プログラムで扱える数値型の値に変換するために使用します。
主な属性一覧
<fmt:parseNumber>タグには、以下の属性が用意されています。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| value | 読み取る(解析対象の)数値 | いいえ | タグのボディ |
| type | NUMBER(数値)、CURRENCY(通貨)、PERCENT(パーセント)のいずれか | いいえ | number |
| parseLocale | 数値の解析時に使用するロケール | いいえ | デフォルトのロケール |
| integerOnly | 整数として解析する場合はtrue、浮動小数点数として解析する場合はfalse | いいえ | false |
| pattern | カスタムの解析パターン | いいえ | なし |
| timeZone | 表示する日付のタイムゾーン | いいえ | デフォルトのタイムゾーン |
| var | 解析結果の数値を格納する変数名 | いいえ | ページに直接出力 |
| scope | 解析結果を格納する変数のスコープ | いいえ | page |
pattern属性は、<fmt:formatNumber>タグのpattern属性と同じように動作します。ただし、解析(パース)の場合は、パーサーに対して「どのような形式の文字列を受け取るか」を指定する役割を持つ点に注意してください。たとえば「#,##0.00」のようなパターンを指定することで、カンマ区切りの金額文字列を正しく解析できます。
使用例
以下は、通貨形式の文字列「$1250003.350」を解析するサンプルコードです。
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "https://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:parseNumber タグ</title>
</head>
<body>
<h3>数値の解析:</h3>
<c:set var = "balance" value = "$1250003.350" />
<fmt:parseNumber var = "i" type = "currency" value = "${balance}" />
<p>解析結果 (1) : <c:out value = "${i}" /></p>
<fmt:parseNumber var = "i" integerOnly = "true" type = "currency" value = "${balance}" />
<p>解析結果 (2) : <c:out value = "${i}" /></p>
</body>
</html>
このコードでは、まず
上記のコードを実行すると、以下の結果が出力されます。
数値の解析: 解析結果 (1) : 1250003.35 解析結果 (2) : 1250003
ポイントまとめ
- type属性に「currency」を指定すると、通貨記号付きの文字列を数値として解析できます。
- integerOnly属性を「true」にすると、小数部を無視した整数値だけを取得できます。
- var属性を指定しない場合、解析結果はそのままページに出力されます。
- ロケールによって通貨記号や区切り文字の扱いが異なるため、必要に応じてparseLocale属性を指定しましょう。
-
JSPでXMLを解析する方法|JSTL x:parseタグの使い方を徹底解説
<x:parse>タグは、属性で指定されたXMLデータ、またはタグ本体に記述されたXMLデータを解析(パース)するために使用します。JSTL(JSP Standard Tag Library)のXMLタグライブラリに属するタグで、Javaコードを直接書かずにJSP上でXMLを処理できるのが大きな特徴です。 x:parseタグの主な属性 <x:parse>タグには、以下の属性が用意されています。 属性説明必須デフォルト値var解析結果のXMLデータを格納する変数いいえなしxml解析対象のドキュメント本文(String型またはReader型)いいえタグ本体systemId
-
JSPでSQLのDELETE文を実行する方法|JSTL sql:updateタグの使い方
JSTLの<sql:update>タグとは<sql:update>タグは、結果セット(ResultSet)を返さないSQL文、たとえばINSERT・UPDATE・DELETEなどのステートメントを実行するためのJSTLタグです。この記事では、JSPページから<sql:update>タグを使ってDELETE文を実行し、テーブルのレコードを削除する手順を解説します。<sql:update>タグの主な属性<sql:update>タグには、以下の属性が用意されています。属性説明必須デフォルト値sql実行するSQLコマンド(ResultSetを