9.3 coreタグライブラリからJSTLを使用
ナビゲーションに移動
検索に移動
目次
ある設計目標のもと、coreタグライブラリから適当な JSP Standard Tag Library (JSTL v1.1)のタグを使用する
- 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の詳細情報は、以下のライブラリを確認する!!
standard.jar の META-INF に tldファイルが含まれている
__taglibディレクティブ__
- <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
タグ
タグ | 内容 |
---|---|
<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>
SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)
© 2006 矢木浩人