| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「9.3 coreタグライブラリからJSTLを使用」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==ある設計目標のもと、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" %>
+
  &lt;%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %&gt;
  
 
===タグ===
 
===タグ===
43行目: 43行目:
 
!内容
 
!内容
 
|-
 
|-
|<c:catch>
+
|&lt;c:catch&gt;
 
|発生したThrowableをキャッチ
 
|発生したThrowableをキャッチ
 
|-
 
|-
|<c:out>
+
|&lt;c:out&gt;
 
|ページへ出力
 
|ページへ出力
 
|-
 
|-
|<c:set>
+
|&lt;c:set&gt;
 
|EL式の結果をスコープに格納する
 
|EL式の結果をスコープに格納する
 
|-
 
|-
|<c:remove>
+
|&lt;c:remove&gt;
 
|スコープから属性を削除する
 
|スコープから属性を削除する
 
|-
 
|-
|<c:chose>
+
|&lt;c:chose&gt;
|<c:when><c:otherwise>とともに利用し、相互に排他的な条件文を記述する
+
|&lt;c:when&gt;&lt;c:otherwise&gt;とともに利用し、相互に排他的な条件文を記述する
 
|-
 
|-
|<c:if>
+
|&lt;c:if&gt;
 
|条件文を記述する。条件が真ならボディ部分を実行する
 
|条件文を記述する。条件が真ならボディ部分を実行する
 
|-
 
|-
|<c:forEach>
+
|&lt;c:forEach&gt;
 
|繰り返し、コレクションメンバの繰り返し
 
|繰り返し、コレクションメンバの繰り返し
 
|-
 
|-
|<c:forTokens>
+
|&lt;c:forTokens&gt;
 
|デリミタで文字列を分割
 
|デリミタで文字列を分割
 
|-
 
|-
|<c:url>
+
|&lt;c:url&gt;
 
|パラメータを含む、URLを生成する
 
|パラメータを含む、URLを生成する
 
|-
 
|-
|<c:import>
+
|&lt;c:import&gt;
 
|webアプリケーションの外部のコンテンツにもアクセス
 
|webアプリケーションの外部のコンテンツにもアクセス
 
|-
 
|-
|<c:redirect>
+
|&lt;c:redirect&gt;
 
|ブラウザにリダイレクトを指示
 
|ブラウザにリダイレクトを指示
 
|-
 
|-
 
|}
 
|}
  
=====<c:catch>=====
+
=====&lt;c:catch&gt;=====
  
  <c:catch var="e">
+
  &lt;c:catch var="e"&gt;
   <% int num = Integer.parseInt("NUMBER"); // 例外を発生させる %>
+
   &lt;% int num = Integer.parseInt("NUMBER"); // 例外を発生させる %&gt;
  </c:catch>
+
  &lt;/c:catch&gt;
 
  例外 : ${pageScope.e.message}
 
  例外 : ${pageScope.e.message}
  
=====<c:out>=====
+
=====&lt;c:out&gt;=====
  <%
+
  &lt;%
 
   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));               
  %>
+
  %&gt;
  <c:out value="${today}" />&nbsp;<c:out value="${hour}" />
+
  &lt;c:out value="${today}" /&gt;&nbsp;&lt;c:out value="${hour}" /&gt;
  
=====<c:choose>=====
+
=====&lt;c:choose&gt;=====
  <c:choose>
+
  &lt;c:choose&gt;
   <c:when test="${5 <= hour && hour < 12}">
+
   &lt;c:when test="${5 &lt;= hour && hour &lt; 12}"&gt;
 
     朝です。おはよう
 
     朝です。おはよう
   </c:when>
+
   &lt;/c:when&gt;
   <c:when test="${12 <= hour && hour < 17}">
+
   &lt;c:when test="${12 &lt;= hour && hour &lt; 17}"&gt;
 
     昼です。こんにちは
 
     昼です。こんにちは
   </c:when>
+
   &lt;/c:when&gt;
   <c:when test="${17 <= hour && hour <= 23}">
+
   &lt;c:when test="${17 &lt;= hour && hour &lt;= 23}"&gt;
 
     夜です。こんばんは
 
     夜です。こんばんは
   </c:when>
+
   &lt;/c:when&gt;
   <c:otherwise>
+
   &lt;c:otherwise&gt;
 
     いらっしゃい  
 
     いらっしゃい  
   </c:otherwise>
+
   &lt;/c:otherwise&gt;
  </c:choose>
+
  &lt;/c:choose&gt;
  
=====<c:if>=====
+
=====&lt;c:if&gt;=====
  <c:if test="${hour % 2 == 0}">
+
  &lt;c:if test="${hour % 2 == 0}"&gt;
 
   今は偶数時間ですね。
 
   今は偶数時間ですね。
  </c:if>
+
  &lt;/c:if&gt;
  <c:if test="${hour % 2 != 0}">
+
  &lt;c:if test="${hour % 2 != 0}"&gt;
 
   今は奇数時間ですね。
 
   今は奇数時間ですね。
  </c:if>
+
  &lt;/c:if&gt;
  
=====<c:forEach>=====
+
=====&lt;c:forEach&gt;=====
  <select>
+
  &lt;select&gt;
   <c:forEach var="i" begin="0" end="23" step="1">
+
   &lt;c:forEach var="i" begin="0" end="23" step="1"&gt;
     <option value="${i}">${i}</option>
+
     &lt;option value="${i}"&gt;${i}&lt;/option&gt;
   </c:forEach>
+
   &lt;/c:forEach&gt;
  </select>
+
  &lt;/select&gt;
 
   
 
   
  <%
+
  &lt;%
 
   // コレクションも利用可能
 
   // コレクションも利用可能
 
   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);
  %>
+
  %&gt;
 
          
 
          
  <select>
+
  &lt;select&gt;
   <c:forEach var="itm" items="${dummy}">
+
   &lt;c:forEach var="itm" items="${dummy}"&gt;
     <option><c:out value="${itm}" /></option>
+
     &lt;option&gt;&lt;c:out value="${itm}" /&gt;&lt;/option&gt;
   </c:forEach>        
+
   &lt;/c:forEach&gt;        
  </select>
+
  &lt;/select&gt;
  
=====<c:forTokens>=====
+
=====&lt;c:forTokens&gt;=====
  <table border="1">        
+
  &lt;table border="1"&gt;        
   <tr>
+
   &lt;tr&gt;
     <th></th><th></th><th></th>
+
     &lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;
   </tr>
+
   &lt;/tr&gt;
   <tr>
+
   &lt;tr&gt;
     <c:forTokens delims="/" var="dt" items="${today}" >
+
     &lt;c:forTokens delims="/" var="dt" items="${today}" &gt;
       <td>${dt}</td>
+
       &lt;td&gt;${dt}&lt;/td&gt;
     </c:forTokens>        
+
     &lt;/c:forTokens&gt;        
   </tr>
+
   &lt;/tr&gt;
  </table>    
+
  &lt;/table&gt;    
  
  
=====<c:set>=====
+
=====&lt;c:set&gt;=====
  <c:set var="sixhourslater" value="${(hour + 6) mod 24}" />
+
  &lt;c:set var="sixhourslater" value="${(hour + 6) mod 24}" /&gt;
  今から6時間後は、<c:out value="${sixhourslater}" />時です
+
  今から6時間後は、&lt;c:out value="${sixhourslater}" /&gt;時です
  
=====<c:url>=====
+
=====&lt;c:url&gt;=====
  <c:url value="/jsp/Section7_1.jsp" var="sec7_1">
+
  &lt;c:url value="/jsp/Section7_1.jsp" var="sec7_1"&gt;
   <c:param name="param1" value="param1_1"/>
+
   &lt;c:param name="param1" value="param1_1"/&gt;
   <c:param name="param1" value="param1_2"/>
+
   &lt;c:param name="param1" value="param1_2"/&gt;
  </c:url>
+
  &lt;/c:url&gt;
  <a href="${sec7_1}">Section 7.1</a> 定義済み変数にアクセスするELコードを書く
+
  &lt;a href="${sec7_1}"&gt;Section 7.1&lt;/a&gt; 定義済み変数にアクセスするELコードを書く
  
=====<c:import>=====
+
=====&lt;c:import&gt;=====
  <c:import url="/jsp/Section7_1.jsp">
+
  &lt;c:import url="/jsp/Section7_1.jsp"&gt;
   <c:param name="param1" value="param1_1"/>
+
   &lt;c:param name="param1" value="param1_1"/&gt;
   <c:param name="param1" value="param1_2"/>
+
   &lt;c:param name="param1" value="param1_2"/&gt;
  </c:import>
+
  &lt;/c:import&gt;
  
=====<c:redirect>=====
+
=====&lt;c:redirect&gt;=====
  <c:redirect url="/jsp/Section7_1.jsp">
+
  &lt;c:redirect url="/jsp/Section7_1.jsp"&gt;
   <c:param name="param1" value="param1_1"/>
+
   &lt;c:param name="param1" value="param1_1"/&gt;
   <c:param name="param1" value="param1_2"/>
+
   &lt;c:param name="param1" value="param1_2"/&gt;
  </c:redirect>
+
  &lt;/c:redirect&gt;
  
 
----
 
----
 
{{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

  1. Core: http://java.sun.com/jsp/jstl/core
  2. XML: http://java.sun.com/jsp/jstl/xml
  3. Internationalization: http://java.sun.com/jsp/jstl/fmt
  4. SQL: http://java.sun.com/jsp/jstl/sql
  5. 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の詳細情報は、以下のライブラリを確認する!!

0100 standard.jpg 0099 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>

[SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)]