JSTL
JSTL(Java server page Standard Template Library) の略で、Java の仕様として用意されています。struts タグライブラリが
名の通りstruts 専用ですが、こちらはJSP2.0 の標準規格とも言えます。それゆえに機能面で重複する場合もありますが、JSTL の
方がより低水準の処理が行えるメリットがあります。struts2 でももちろん使えます。
更新日 2016-02-13
ダウンロード
実装はJakarta プロジェクトで行われています。Standard 1.1 Taglib Downloadsよりバイナリをダウンロードします。Tomcat5 の場合はJSP2.0 ならびにservlet2.4 をサポートしているので、該当する
バージョン(2009/09 現在ではstandard-1.1) をダウンロードします。解凍してlib ディレクトリ内のjstl.jar とstandard.jar の
二つをWeb アプリケーションの/WEB-INF/lib にコピーします。
tld の設定は必要なく、使用したいJSP において以下のディレクティブさえ記述するだけで利用できます。
tld の設定は必要なく、使用したいJSP において以下のディレクティブさえ記述するだけで利用できます。
ディレクティブ例
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
core タグライブラリ
JSP での基本機能が実装されています。
c:out
値を出力します。
<c:out value="文字列" />
// EL 式も使える
<c:out value="${objItem.piece_price}" />
// っていうかJSP2.0 ならEL 式だけでもOK !?
${objItem.piece_price}
c:if、c:choose、c:when、c:otherwise
条件分岐を行います。
<c:if test="${objItem.pirce_price < 1000}">
<c:out value="${objItem.name}" />
</c:if>
<c:choose>
<c:when test="${objItem.piece_price < 1000}">
AAA
</c:when>
<c:when test="${objItem.piece_price < 2000}">
BBB
</c:when>
<c:otherwise>
ZZZ
</c:otherwise>
</c:choose>
c:forEach
ループできます。コレクションオブジェクトがなくてもループできるのは便利
<select name="piece_lot">
<c:forEach begin="0" end="99" varStatus="status">
<option>
${status.index}
</option>
</c:forEach>
</select>
fmt タグライブラリ
書式出力ができます。
fmt:formatNumber
pattern 属性には 書式設定もできます。
// カンマ付きで出力する
<fmt:formatNumber value="19800" />