【JSP】タグライブラリ【JSTL】

JSTLとは

JSTLは「JSP Standard Tag Library」の略で、JSP内でよく使われる機能をタグライブラリとしてまとめたもの。
EL式を組み合わせて使用する。

タグライブラリの種類


使用方法

1.jarファイルを入手

https://tomcat.apache.org/download-taglibs.cgi
ダウンロードするファイル
・taglibs-standard-impl-1.2.5.jar
・taglibs-standard-jstlel-1.2.5.jar
・taglibs-standard-spec-1.2.5.jar

2.jarファイルを配置

ダウンロードしたjarファイルを対象プロジェクトの「WEB-INF\lib」配下に配置する

3.タグライブラリを宣言
<%@ taglib prefix="prefix名" uri="TLDファイルのURI" %>

Coreタグの場合
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Coreタグ

c:if(単一の条件分岐)

elseif、elseは無い。chooseを使うこと

<c:if test="条件式" [var="条件式の結果を格納する変数"] [scope="変数を格納するスコープ"]>
   条件式がtrueの場合の処理
</c:if>

例.<c:if test="${offerForm.name != null}">サンプル</c:if>

c:choose(複数の条件分岐)

whenが複数ある場合は、初めにヒットしたタグの処理が実行される。

<c:choose>
    <c:when test="条件式">条件に一致した場合の処理</c:when>
    <c:when test="条件式">条件に一致した場合の処理</c:when>
    <c:otherwise>全ての条件に一致しなかった場合の処理</c:otherwise>
</c:choose>

c:forEach(繰り返し)

回数指定による繰り返し

<c:forEach begin="開始値" end="終了値" [var="カウンタ変数名" ] [step="増分値"]>
  繰り返し処理
</c:forEach>

例.
「c:forEach」1~5まで増分2で繰り返し
「c:out」で現在のindex値を出力
<c:forEach begin="1" end="5" step="2" var="index">
  index:<c:out value="${index}"/>
</c:forEach>

コレクション・配列の要素を参照しながら繰り返し

<c:forEach var="コレクション・配列の各要素を表す変数名" items="コレクション・配列を参照する変数名" varStatus="ループ状態のステータスを格納する変数名">

例.
<c:set var="str" value="A,B,C,D,E" />
<c:forEach var="item" items="${str}" varStatus="status">
      <c:out value="${status.index}" /><c:out value="${item}" />
</c:forEach>


c:set(変数を設定)
var:
<c:set var="変数名" value="初期値" [scope="スコープ"] />

例.<c:set var="form" value="${offerForm}" scope="request" />
target:
<c:set target="オブジェクト" property="プロパティ名" value="設定値" />

例.<c:set target="${fruits}" property="ぶどう" value="300" />
mapでの例。targetにmap名、propertyにキー、valueに値を指定


c:out(変数を出力)
<c:out value="出力値" [default="デフォルト値"] [escapeXml="ブール値"] /> 

例.
<c:out value="${offerForm.name}" /> 
<c:out value="${offerForm.name}" default="non" escapeXml="false" /> 


c:remove(変数を削除)
<c:remove var="変数名" [scope="スコープ"] />