「9.3 coreタグライブラリからJSTLを使用」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==ある設計目標のもと、coreタグライブラリから適当な JSP Standard Tag Library (JSTL v1.1)のタグを使用する== JSTL # Core: http://java.sun.c…」) |
|||
| 35行目: | 35行目: | ||
__taglibディレクティブ__ | __taglibディレクティブ__ | ||
| − | + | <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> | |
===タグ=== | ===タグ=== | ||
| 43行目: | 43行目: | ||
!内容 | !内容 | ||
|- | |- | ||
| − | | | + | |<c:catch> |
|発生したThrowableをキャッチ | |発生したThrowableをキャッチ | ||
|- | |- | ||
| − | | | + | |<c:out> |
|ページへ出力 | |ページへ出力 | ||
|- | |- | ||
| − | | | + | |<c:set> |
|EL式の結果をスコープに格納する | |EL式の結果をスコープに格納する | ||
|- | |- | ||
| − | | | + | |<c:remove> |
|スコープから属性を削除する | |スコープから属性を削除する | ||
|- | |- | ||
| − | | | + | |<c:chose> |
| − | | | + | |<c:when><c:otherwise>とともに利用し、相互に排他的な条件文を記述する |
|- | |- | ||
| − | | | + | |<c:if> |
|条件文を記述する。条件が真ならボディ部分を実行する | |条件文を記述する。条件が真ならボディ部分を実行する | ||
|- | |- | ||
| − | | | + | |<c:forEach> |
|繰り返し、コレクションメンバの繰り返し | |繰り返し、コレクションメンバの繰り返し | ||
|- | |- | ||
| − | | | + | |<c:forTokens> |
|デリミタで文字列を分割 | |デリミタで文字列を分割 | ||
|- | |- | ||
| − | | | + | |<c:url> |
|パラメータを含む、URLを生成する | |パラメータを含む、URLを生成する | ||
|- | |- | ||
| − | | | + | |<c:import> |
|webアプリケーションの外部のコンテンツにもアクセス | |webアプリケーションの外部のコンテンツにもアクセス | ||
|- | |- | ||
| − | | | + | |<c:redirect> |
|ブラウザにリダイレクトを指示 | |ブラウザにリダイレクトを指示 | ||
|- | |- | ||
|} | |} | ||
| − | ===== | + | =====<c:catch>===== |
| − | + | <c:catch var="e"> | |
| − | + | <% int num = Integer.parseInt("NUMBER"); // 例外を発生させる %> | |
| − | + | </c:catch> | |
例外 : ${pageScope.e.message} | 例外 : ${pageScope.e.message} | ||
| − | ===== | + | =====<c:out>===== |
| − | + | <% | |
Date now = new Date(); | Date now = new Date(); | ||
SimpleDateFormat sdf = new SimpleDateFormat(); | SimpleDateFormat sdf = new SimpleDateFormat(); | ||
| 94行目: | 94行目: | ||
sdf.applyPattern("HH"); | sdf.applyPattern("HH"); | ||
pageContext.setAttribute("hour", sdf.format(now)); | 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(); | List dummyList = new ArrayList(); | ||
| 135行目: | 135行目: | ||
dummyList.add("DUMMY 3"); | dummyList.add("DUMMY 3"); | ||
pageContext.setAttribute("dummy", dummyList); | 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時間後は、 | + | 今から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}} | {{amazon|1932394389}} | ||
| − | [http://www.amazon.co.jp/dp/1932394389?tag=typea09-22&link_code=as3&creativeASIN=1932394389&creative=3999&camp=767 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 SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)]] |
2020年2月15日 (土) 08:00時点における版
目次
ある設計目標のもと、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の詳細情報は、以下のライブラリを確認する!!
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 矢木浩人