JSPのc:chooseタグで条件分岐を実現する方法とコード例
c:chooseタグとは
<c:choose>タグは、Javaのswitch文と同じような働きをするJSTLタグです。複数の選択肢の中から、条件に合致する処理をひとつだけ選んで実行します。switch文におけるcase句に相当するのが<c:when>タグで、どの条件にも当てはまらなかった場合のデフォルト処理を担うdefault句に相当するのが<c:otherwise>タグです。
重要なポイントとして、<c:choose>の中では上から順に条件が評価され、最初にtrueになった<c:when>ブロックだけが実行され、それ以降の<c:when>はスキップされます。そのため、条件を記述する順序にも注意が必要です。
各タグの属性
<c:choose>タグには、属性はありません。
<c:when>タグには、下表のとおり1つの属性があります。
<c:otherwise>タグには、属性はありません。
<c:when>タグの属性は次のとおりです。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| test | 評価する条件式(EL式) | はい | なし |
コード例
次の例では、セッションスコープに給与(salary)を設定し、その値に応じて表示するメッセージを切り替えています。
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:choose>タグの使用例</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*2}"/>
<p>あなたの給与 : <c:out value = "${salary}"/></p>
<c:choose>
<c:when test = "${salary <= 0}">
給与が低すぎて生活できません。
</c:when>
<c:when test = "${salary > 1000}">
給与はとても良い水準です。
</c:when>
<c:otherwise>
何とも言えません…
</c:otherwise>
</c:choose>
</body>
</html>
このコードを実行すると、以下の結果が出力されます。
あなたの給与 : 4000 給与はとても良い水準です。
セッションに設定されたsalaryは「2000×2」の計算結果である4000です。1つ目の<c:when>の条件「salary <= 0」はfalse、2つ目の<c:when>の条件「salary > 1000」はtrueとなるため、対応するメッセージが表示されています。このように<c:choose>タグを使えば、JSPページ内でもswitch文と同様の多岐分岐処理を簡潔かつ読みやすく記述できます。
-
JSPで数値をフォーマットする方法|fmt:formatNumberタグの使い方を解説
JSTL(JSP Standard Tag Library)の<fmt:formatNumber>タグは、数値・パーセント・通貨などを指定した形式で整形して表示するために使用します。金額の桁区切りや小数点以下の桁数制御など、Webアプリケーションの画面表示に欠かせないフォーマット処理を、スクリプトレットを書かずに簡単に実現できるのが特徴です。 fmt:formatNumberタグの主な属性 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURR
-
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