JSPでパーセント(%)を解析するには?fmt:parseNumberタグの使い方
JSTLの<fmt:parseNumber>タグは、数値、パーセント(%)、通貨といった文字列を解析(パース)して、数値として取得するために使用します。
例えば「125.350%」のようなパーセント表記の文字列を、計算に使える数値へ変換したい場合に便利です。
<fmt:parseNumber>タグの主な属性
<fmt:parseNumber>タグには、以下の属性が用意されています。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| value | 解析対象となる数値文字列 | いいえ | タグのボディ |
| type | NUMBER(数値)、CURRENCY(通貨)、PERCENT(パーセント)のいずれか | いいえ | number |
| parseLocale | 解析時に使用するロケール | いいえ | デフォルトのロケール |
| integerOnly | trueの場合は整数として解析し、falseの場合は浮動小数点数として解析する | いいえ | false |
| pattern | カスタム解析パターン | いいえ | なし |
| var | 解析結果を格納する変数名 | いいえ | ページに直接出力 |
| scope | 変数を格納するスコープ | いいえ | page |
pattern属性について
pattern属性は、<fmt:formatNumber>タグのpattern属性と同じように動作します。ただし、解析(パース)の場合は、「どのような形式の文字列を受け付けるか」をパーサーに伝える役割を持つ点に注意してください。
パーセント解析のサンプルコード
以下は、パーセント形式の文字列「125.350%」を<fmt:parseNumber>タグで解析する例です。
<%@ 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 = "125.350%" />
<fmt:parseNumber var = "i" type = "PERCENT" value = "${balance}" />
<p>解析結果 (1) : <c:out value = "${i}" /></p>
<fmt:parseNumber var = "i" integerOnly = "true" type = "PERCENT" value = "${balance}" />
<p>解析結果 (2) : <c:out value = "${i}" /></p>
</body>
</html>このコードを実行すると、以下のような結果が出力されます。
数値の解析: 解析結果 (1) : 125.35 解析結果 (2) : 125
実行結果のポイント
- 解析結果 (1):type属性に「PERCENT」を指定することで、「125.350%」という文字列からパーセント記号を除いた数値「125.35」が取得できます。
- 解析結果 (2):integerOnly属性に「true」を指定しているため、小数点以下が切り捨てられ、整数「125」として解析されます。
このように、<fmt:parseNumber>タグとtype属性を組み合わせることで、JSP上でパーセント表記の文字列を簡単に数値へ変換できます。
-
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を
-
JSPでSQL UPDATE文を実行する方法|JSTL sql:updateタグの使い方を解説
<sql:update>タグは、データを返さないSQL文、つまりINSERT、UPDATE、DELETEなどのステートメントを実行するために使用されるタグです。 sql:updateタグの属性 <sql:update>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 sql実行するSQLコマンド(ResultSetを返してはいけません)いいえタグのボディ dataSource使用するデータベース接続(デフォルト設定を上書きします)いいえデフォルトのデータベース var影響を受けた行数を格納する変数の名前いいえなし scope影響を受けた行数を