JSTL覚え書き/Coreタグライブラリ

仕事でJSTLを使ったので、覚え書きです。今回使ったのは、Coreタグライブラリの一部でした。
今後は使うタグが増えたら追記しようかと。

JSTL

JSTLは「JSP Standard Tag Library」の略でJSPでよく使われるカスタムタグをまとめたもの。

Coreタグ

使い方

Coreタグを使うJSPファイルの先頭に下記を記述する。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<c:set>

変数に値をセットする。

属性名 内容
var 変数名
value 設定する値
scope varのスコープ
target オブジェクト変数名
property targetのプロパティ名

targetpropertyは一緒に使用する。その場合はvarが不要。

サンプル

<c:set var="year" value="1999" scope="page"/>

<c:out>

値を画面に出力する。

属性名 内容
value 出力する変数または値
default valueがnullの場合に表示する値
escapeXml 予約文字のエスケープ有無。デフォルトはtrue

サンプル

<c:out value="${year}" default="2000"/>
<c:out value="年"/>

<c:if>

条件分岐を行う。

属性名 内容
test 条件式
var testの結果を格納する変数名
scope varのスコープ

注意点

elseは無い。

サンプル

<c:if test="${tableHeader.colspan == 0}"></c:if>
<c:if test="${tableHeader.colspan == 1}">
    <th>見出し</th>
</c:if>
<c:if test="${tableHeader.colspan > 1}">
    <th colspan="${tableHeader.colspan}">見出し</th>
</c:if>

<c:choose> <c:when> <c:otherwise>

条件分岐を行う。switch~caseのような使い方。caseとの違いは条件が一致(==)以外でも使えること 。属性は<c:when>のみ有効。

属性名 内容
test 条件式

サンプル

<c:choose>
        <c:when test="${tableHeader.colspan == 0}"></c:when>
        <c:when test="${tableHeader.colspan == 1}">
                <th>見出し</th>
        </c:when>
        <c:otherwise>
                <th colspan="${tableHeader.colspan}">見出し</th>
        </c:otherwise>
</c:choose>

下記の記述もできる。

<c:choose>
        <c:when test="${tableHeader.colspan == 0}"></c:when>
        <c:when test="${tableHeader.colspan == 1}">
                <th>見出し</th>
        </c:when>
        <c:when test="${tableHeader.colspan > 1}">
                <th colspan="${tableHeader.colspan}">見出し</th>
        </c:when>
</c:choose>

<c:forEach>

ループ処理を行う。

属性名 内容
var itemsから取り出した要素を格納する変数
items ループ対象の配列またはコレクション
begin 開始インデックス
end 終了インデックス
step 1ループあたりの移動量
varStatus 現在のループ状態

varStatusの内容

変数 内容
current 現在のvar
index varのインデックス番号(0..n-1)
count 現在のループ回数(1..n)
first ループの先頭かどうか
last ループの最後かどうか
begin beginの値
end endの値
step stepの値

サンプル

<c:forEach var="item" items="${items}" varStatus="status1">
        <c:out value="${item.no}" /><c:out value=", " />
</c:forEach>

<c:forEach var="i" begin="0" end="10" step="2" varStatus="status2">
        <c:out value="${i}" /><c:out value=", " />
</c:forEach>

注意点

begin > endstepを負にするループはできない。

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です