プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

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文と同様の多岐分岐処理を簡潔かつ読みやすく記述できます。

  1. JSPで数値をフォーマットする方法|fmt:formatNumberタグの使い方を解説

    JSTL(JSP Standard Tag Library)の<fmt:formatNumber>タグは、数値・パーセント・通貨などを指定した形式で整形して表示するために使用します。金額の桁区切りや小数点以下の桁数制御など、Webアプリケーションの画面表示に欠かせないフォーマット処理を、スクリプトレットを書かずに簡単に実現できるのが特徴です。 fmt:formatNumberタグの主な属性 <fmt:formatNumber>タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value表示する数値はいなし typeNUMBER(数値)、CURR

  2. 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