- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!ある設計目標のもと、coreタグライブラリから適当な JSP Standard Tag Library (JSTL v1.1)のタグを使用する
JSTL
# Core: http://java.sun.com/jsp/jstl/core
# XML: http://java.sun.com/jsp/jstl/xml
# Internationalization: http://java.sun.com/jsp/jstl/fmt
# SQL: http://java.sun.com/jsp/jstl/sql
# Functions: http://java.sun.com/jsp/jstl/functions
!!JSTLの利用
,jarファイル,役割
,jstl.jar,ライブラリのAPIクラス
,standard.jar,ライブラリの実装クラス
__Tomcat 5.5 での上記jarファイル格納場所__
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jsp-examples\WEB-INF\lib
*配備記述子を編集する必要はない
*サーブレットコンテナが自動的に見つける
*JSPにてtaglibディレクティブの宣言は必要
::JSTLの詳細情報は、以下のライブラリを確認する!!
{{ref_image standard.jpg}}
{{ref_image jstl02.JPG}}
standard.jar の META-INF に tldファイルが含まれている
__taglibディレクティブ__
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
!!タグ
{{ref c.tld}}
,タグ,内容
,<c:catch>,発生したThrowableをキャッチ
,<c:out>,ページへ出力
,<c:set>,EL式の結果をスコープに格納する
,<c:remove>,スコープから属性を削除する
,<c:chose>,<c:when><c:otherwise>とともに利用し、相互に排他的な条件文を記述する
,<c:if>,条件文を記述する。条件が真ならボディ部分を実行する
,<c:forEach>,繰り返し、コレクションメンバの繰り返し
,<c:forTokens>,デリミタで文字列を分割
,<c:url>,パラメータを含む、URLを生成する
,<c:import>,webアプリケーションの外部のコンテンツにもアクセス
,<c:redirect>,ブラウザにリダイレクトを指示
::<c:catch>
<c:catch var="e">
<% int num = Integer.parseInt("NUMBER"); // 例外を発生させる %>
</c:catch>
例外 : ${pageScope.e.message}
::<c:out>
<%
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy/MM/dd");
pageContext.setAttribute("today", sdf.format(now));
sdf.applyPattern("HH");
pageContext.setAttribute("hour", sdf.format(now));
%>
<c:out value="${today}" /> <c:out value="${hour}" />時
::<c:choose>
<c:choose>
<c:when test="${5 <= hour && hour < 12}">
朝です。おはよう
</c:when>
<c:when test="${12 <= hour && hour < 17}">
昼です。こんにちは
</c:when>
<c:when test="${17 <= hour && hour <= 23}">
夜です。こんばんは
</c:when>
<c:otherwise>
いらっしゃい
</c:otherwise>
</c:choose>
::<c:if>
<c:if test="${hour % 2 == 0}">
今は偶数時間ですね。
</c:if>
<c:if test="${hour % 2 != 0}">
今は奇数時間ですね。
</c:if>
::<c:forEach>
<select>
<c:forEach var="i" begin="0" end="23" step="1">
<option value="${i}">${i}</option>
</c:forEach>
</select>時
<%
// コレクションも利用可能
List dummyList = new ArrayList();
dummyList.add("DUMMY 1");
dummyList.add("DUMMY 2");
dummyList.add("DUMMY 3");
pageContext.setAttribute("dummy", dummyList);
%>
<select>
<c:forEach var="itm" items="${dummy}">
<option><c:out value="${itm}" /></option>
</c:forEach>
</select>
::<c:forTokens>
<table border="1">
<tr>
<th>年</th><th>月</th><th>日</th>
</tr>
<tr>
<c:forTokens delims="/" var="dt" items="${today}" >
<td>${dt}</td>
</c:forTokens>
</tr>
</table>
::<c:set>
<c:set var="sixhourslater" value="${(hour + 6) mod 24}" />
今から6時間後は、<c:out value="${sixhourslater}" />時です
::<c:url>
<c:url value="/jsp/Section7_1.jsp" var="sec7_1">
<c:param name="param1" value="param1_1"/>
<c:param name="param1" value="param1_2"/>
</c:url>
<a href="${sec7_1}">Section 7.1</a> 定義済み変数にアクセスするELコードを書く
::<c:import>
<c:import url="/jsp/Section7_1.jsp">
<c:param name="param1" value="param1_1"/>
<c:param name="param1" value="param1_2"/>
</c:import>
::<c:redirect>
<c:redirect url="/jsp/Section7_1.jsp">
<c:param name="param1" value="param1_1"/>
<c:param name="param1" value="param1_2"/>
</c:redirect>
----
{{amazon 1932394389}}
[SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)|http://www.amazon.co.jp/dp/1932394389?tag=typea09-22&link_code=as3&creativeASIN=1932394389&creative=3999&camp=767]