補講:JSTLをつかった単純な繰り返し
例えば、JavaSEで「Hello Word」という文字列を6回繰り返し出力する際には次のように書きました。
for (int i = 0; i < 6; i++) {
System.out.println("Hello World");
}
同様の処理をJSPでは <c:forEach> を使って以下のように書きます。
<c:forEach begin="1" end="6" step="1">
Hello World<br>
</c:forEach>
【begin】、【end】、【step】の意味は英語そのままですから特に解説もいらないと思います。
以下は <c:forEach> を使った単純な繰り返しのサンプル集です。
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!-- ページのコンテンツタイプとエンコーディングを指定 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!-- JSTLのコアタグライブラリをインポート -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- ページの文字エンコーディングを設定 -->
<title>forEach1</title>
</head>
<body>
<c:forEach begin="1" end="6" step="1"> <!-- 1から6までの繰り返しを設定 -->
Hello World<br> <!-- 繰り返しごとに「Hello World」を表示 -->
</c:forEach>
<hr>
<c:forEach begin="1" end="6" var="i"> <!-- 1から6までの繰り返しを設定し、変数iを使用 -->
<h${7-i}>Hello World</h${i}> <!-- 変数iを使用してヘッダータグのレベルを変更 -->
</c:forEach>
<hr>
<c:forEach begin="1" end="6" var="i"> <!-- 1から6までの繰り返しを設定し、変数iを使用 -->
<c:out value="${i}"/><br> <!-- 変数iの値を出力 -->
</c:forEach>
<hr>
<c:forEach begin="1" end="10" step="2" var="i"> <!-- 1から10まで2ステップで繰り返し、変数iを使用 -->
<c:out value="${i}"/><br> <!-- 変数iの値を出力 -->
</c:forEach>
<hr>
<c:forEach begin="1" end="9" var="i"> <!-- 1から9までの繰り返しを設定し、変数iを使用 -->
<c:forEach begin="1" end="9" var="j"> <!-- ネストされた繰り返し、1から9までの変数jを使用 -->
<c:out value="${i * j}"/> <!-- 変数iとjの積を出力 -->
</c:forEach>
<br>
</c:forEach>
<hr>
数量:<select name="num"> <!-- ドロップダウンメニューを作成 -->
<c:forEach begin="1" end="6" var="i"> <!-- 1から6までの繰り返しを設定し、変数iを使用 -->
<option>${i}</option> <!-- 変数iの値をオプションとして追加 -->
</c:forEach>
</select>
</body>
</html>
- step属性は省略できましたか?その場合の既定値はなんですか?
あなたの答え: |
- step属性にマイナスの数は指定できません。そこで14~16行でなされている工夫はなんですか?
あなたの答え: |
- 18~20行、22~24行の出力結果をそれぞれ予想しなさい。
あなたの答え: |
- 26~31行の出力結果を予想しなさい。
あなたの答え: |
- 33~37行の出力結果を予想しなさい。
あなたの答え: |
以上、「JSTLをつかった単純な繰り返し」でした。
投稿者プロフィール
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 全ての社員2024年11月26日IT技術者にとってプロセスマイニングとは?
- 全ての社員2024年11月26日NTTが提唱している「IOWN(アイオン)」というコンセプトについて
- 新人エンジニア研修講師2024年11月26日研修のアンケート評価がなぜ悪くなるのか 認知的不協和で考える
- 全ての社員2024年11月26日「アドレナリン」と「ノルアドレナリン」の違い