JSTL 九九の表


JSTL で九九の表を表示します。
Class や配列の使い方も説明します。

前田稔の超初心者のプログラム入門

九九の表

  1. このアプリケーションの開発用に webapps の下に jstl のフォルダーを作成しました。
    +jstl
        +WEB-INF
            +lib
                ・jstl.jar
                ・standard.jar
            +tld
                ・c.tld
        ・kuku.jsp
    
  2. サイトから JSTL をダウンロードして jstl.jar と standard.jar と c.tld を格納して下さい。
    ダウンロードは タグライブラリ を参照して下さい。
  3. kuku.jsp のソースコードです。
    このプログラムは tld に格納された c.tld を使いましたが、/jsp/jstl/core でも動きます。
    <%@page contentType="text/html"%>
    <%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
    
    <html>
    <head><title>JSP Page</title></head>
    <body>
    
    <h1>forEach</h1>
    <table border=1>
      <td></td>
      <c:forEach begin="1" end="9" var="i">
        <td><c:out value="${i}"/></td>
      </c:forEach>
      </tr>
      <c:forEach begin="1" end="9" var="j">
        <td><c:out value="${j}"/></td>
        <c:forEach begin="1" end="9" var="i">
          <td><c:out value="${i * j}"/></td>
        </c:forEach>
        </tr>
      </c:forEach>
    </table>
    
    </body>
    </html>
    
  4. プログラムを実行します。
    "C:\tomcat\bin\tomcat7w.exe" を選択して、管理者として実行から apache-tomcat を起動します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    http://localhost:8080/jstl/kuku.jsp
    次の画面が表示されたら完成です。

  5. c:forEach begin="1" end="9" var="i" は繰り返しタグです。
    i を 1 から始めて 9 まで(9回)繰り返します。
    c:forEach で繰り返される範囲を設定します。

Test Class

  1. Test Class を使って日付を表示する TestClass.jsp のソースコードです。
    <%@page contentType="text/html"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head><title>JSP Page</title></head>
    <body>
    <h1>c:out</h1>
    <%@page import="java.util.*"%>
    <%@page import="java.text.*"%>
    <%!
    public class Test{
        Calendar c = Calendar.getInstance();
        public String getDate(){
            return DateFormat.getInstance().format(new Date());
        }
        public long getYear(){
            return c.get(Calendar.YEAR);
        }
        public long getMonth(){
            return c.get(Calendar.MONTH);
        }
    }
    %>
    <%
    Test t = new Test();
    request.setAttribute("ttt",t);
    %>
    <c:out value="${ttt.date}"/><br>
    <c:out value="${ttt.year}/${ttt.month+1}"/><br>
    </body>
    </html>
    
  2. プログラムを実行します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    http://localhost:8080/jstl/TestClass.jsp
    実行したときの日付と時刻が表示されたら完成です。
    c:out
    
    11/07/12 22:06
    2011/7
    
  3. Test Class は Beans 仕様の Object Class です。
    new Test(); で Class を生成して、setAttribute("ttt",t); で登録します。
    Test t = new Test();
    request.setAttribute("ttt",t);
    
    登録した名前("ttt")で修飾して Beans のメソッドを呼び出します。
    date, year, month がプロパティの名前です。
    c:out value="${ttt.date}"
    c:out value="${ttt.year}/${ttt.month}"
    
    詳細は JSP から Beans のメソッドを呼び出す を参照して下さい。

String[], ArrayList, HashMap

  1. String[], ArrayList, HashMap を扱う array.jsp のソースコードです。
    <%@page contentType="text/html"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head><title>JSP Page</title></head>
    <body>
    <h1>c:out</h1>
    <%@page import="java.util.*"%>
    <%
    String[] sa = {"first","second"};
    request.setAttribute("aaa",sa);
    
    List v = new ArrayList();
    v.add("top");
    v.add("bottom");
    request.setAttribute("bbb",v);
    
    Map m = new HashMap();
    m.put("maeda","atsuko");
    m.put("mizushima","hiro");
    m.put("misora","hibari");
    request.setAttribute("ccc",m);
    %>
    <c:out value="${aaa[0]}"/><br>
    <c:out value="${bbb[1]}"/><br>
    <c:out value="${ccc['maeda'}"/><br>
    </body>
    </html>
    
  2. プログラムを実行します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    http://localhost:8080/jstl/array.jsp
    次の画面が表示されたら完成です。
    c:out
    
    first
    bottom
    atsuko
    
  3. sa は String の配列で、"first","second" の2個の文字列を格納して、"aaa" で登録します。
    String[] sa = {"first","second"};
    request.setAttribute("aaa",sa);
    
    v は Array List で、"top" と "bottom" を格納して、"bbb" で登録します。
    List v = new ArrayList();
    v.add("top");
    v.add("bottom");
    request.setAttribute("bbb",v);
    
    m は HashMap で、3名の苗字と名前を格納して、"ccc" で登録します。
    Map m = new HashMap();
    m.put("maeda","atsuko");
    m.put("mizushima","hiro");
    m.put("misora","hibari");
    request.setAttribute("ccc",m);
    
  4. "aaa" から0番目を、"bbb" から1番目を、"ccc" から 'maeda' をキーにして名前を表示します。
    c:out value="${aaa[0]}"
    c:out value="${bbb[1]}"
    c:out value="${ccc['maeda']}"
    
    first
    bottom
    atsuko
    

Java Game Program