補講: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"%>
<!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">
            Hello World<br>
        </c:forEach>
        <hr>
        <c:forEach begin="1" end="6" var="i">
        <h${7-i}>Hello World</h${i}>
        </c:forEach>
        <hr>
        <c:forEach begin="1" end="6" var="i" >
            <c:out value="${i}"/><br>
        </c:forEach>
        <hr>
        <c:forEach begin="1" end="10" step="2" var="i">
            <c:out value="${i}"/><br>
        </c:forEach>
        <hr>
        <c:forEach begin="1" end="9" var="i">
            <c:forEach begin="1" end="9" var="j">
                <c:out value="${i * j}"/>
            </c:forEach>
            <br>
        </c:forEach>
        <hr>
        数量:<select name="num">
            <c:forEach begin="1" end="6" var="i">
                <option>${i}</option>
            </c:forEach>
        </select>
  </body>
</html>
  • step属性は省略できましたか?その場合の既定値はなんですか?
あなたの答え:
  • step属性にマイナスの数は指定できません。そこで14~16行でなされている工夫はなんですか?
あなたの答え:
  • 18~20行、22~24行の出力結果をそれぞれ予想しなさい。
あなたの答え:
  • 26~31行の出力結果を予想しなさい。
あなたの答え:
  • 33~37行の出力結果を予想しなさい。
あなたの答え:

以上、「JSTLをつかった単純な繰り返し」でした。