JSTL(JavaServer Pages Standard Tag Library) – core
Advertisement
JSTL coreとは
アプリケーションのコアとなる、よく利用される機能のライブラリ。変数の操作や条件分岐、繰り返しなどの基本的な機能が一通り定義されている。
JSTL coreタグ一覧
- catch
- choose
- if
- import
- forEach
- forTokens
- out
- otherwise
- param
- redirect
- remove
- set
- url
- when
catch
<c:catch var="catch_var">
<%
String str = null;
str.substring(0, 1);
%>
</c:catch>
<c:out value="${catch_var}"></c:out>
例外のtry-catch機構をカスタムタグで提供する。
結果
java.lang.NullPointerException
choose
<c:choose> <c:when test="false">false</c:when> <c:otherwise>other</c:otherwise> </c:choose>
条件分岐の利用。if – elseif – else形式。
結果
other
if
<c:if test="true"> true </c:if> <c:if test="false"> false </c:if>
単純な条件分岐の利用。
結果
true
import
<c:import url="import.txt" />
外部ファイルをインポートする。
import.txt
import!!!
結果
import!!!
forEach
<%
String[] for_each_array = {"array1","array2"};
request.setAttribute("for_each_array", for_each_array);
%>
<c:forEach items="${for_each_array}" var="value">
<c:out value="${value}"/><br>
</c:forEach>
コレクションや配列に対して繰り返し処理を実行する。
結果
array1 array2
forTokens
<c:set var="token" value="value1,value2,value3"/>
<c:forTokens items="${token}" delims=","
var="value" varStatus="i" begin="0" end="100" step="1">
<c:out value="${value}"/><br>
</c:forTokens>
任意のtokenで区切られた文字列を、分解処理する。
結果
value1 value2 value3
out
<c:set var="x" value="10"/>
<c:set var="y" value="20"/>
<c:out value="${x}"/> + <c:out value="${y}"/> = <c:out value="${x + y}"/>
<br/>
<c:out value="sample"/>
<br/>
<c:out value="sampl<em>e</em>" escapeXml="true"/>
<br/>
<c:out value="sampl<em>e</em>" escapeXml="false"/>
<br/>
<c:out value="${outnull}" default="default!!"/>
<br/>
<%@page import="java.util.*"%>
<%
String[] array = {"array1","array2"};
request.setAttribute("array", array);
List list = new ArrayList();
list.add("list1");
list.add("list2");
request.setAttribute("list", list);
Map map = new HashMap();
map.put("map1", "map_value1");
map.put("map2", "map_value2");
map.put("map3", "map_value3");
request.setAttribute("map", map);
%>
<c:out value="${array[0]}"/><br>
<c:out value="${list[1]}"/><br>
<c:out value="${map['map1']}"/><br>
param.name:<c:out value="${param.name}"/><br>
paramValues.name[0]:<c:out value="${paramValues.name[0]}"/><br>
paramValues.name[1]:<c:out value="${paramValues.name[1]}"/><br>
様々な形式の変数を出力処理する。
結果
10 + 20 = 30 sample sample sample default!! array1 list2 map_value1
otherwise
chooseを参照。
param
redirectを参照。
redirect
<c:redirect url="http://www.yahoo.co.jp"> <c:param name="param1" value="value1" /> <c:param name="param2" value="value2" /> </c:redirect>
ページのリダイレクトを行う。
結果
http://www.yahoo.co.jp/?param1=value1¶m2=value2
remove
<c:remove var="x" />
不要になったパラメータを削除する。
set
<c:set var="x" value="10"/>
<c:set var="y" value="20"/>
<c:out value="${x}"/> + <c:out value="${y}"/> = <c:out value="${x + y}"/>
変数の宣言と値の設定。
結果
10 + 20 = 30
url
<c:url value="http://www.yahoo.co.jp/" var="yahooUrl">
<c:param name="search" value="MyName"/>
</c:url>
<c:out value="${yahooUrl}"></c:out>
URLのエンコード
結果
http://www.yahoo.co.jp/?search=MyName
when
chooseを参照。

