モデル(エンティティ)の作成 (5/5)
作成:2013-12-14 10:46
更新:2013-12-14 10:46
更新:2013-12-14 10:46
■ビューの作成
では、ビューを作成しましょう。今回は、エンティティを保存するためのフォームと、そして取得したMyDataのListからその中身を一覧表示するテーブルを用意することにします。
下のリスト欄にindex.jspのコードを掲載しておきます。記述したら実際に起動して動作を確かめてみてください。フォームからデータを送信すると、それが保存され、フォームの下にテーブルでまとめて表示されるようになります。
●フォームについて
まずはフォームからです。ここでは以下のようにして入力フィールドを用意してあります。
●データの表示
テータの表示は<table>タグを使ってまとめてありますが、ここではJSTLの<c:forEach>タグを使って繰り返し処理をしています。テーブルの内容を出力する部分を見ると、こうなっています。
下のリスト欄にindex.jspのコードを掲載しておきます。記述したら実際に起動して動作を確かめてみてください。フォームからデータを送信すると、それが保存され、フォームの下にテーブルでまとめて表示されるようになります。
●フォームについて
まずはフォームからです。ここでは以下のようにして入力フィールドを用意してあります。
<input type="text" ${f:text("myname")}>いずれもmyname, mail, ageという名前で項目が用意されるようにしてあります。コントローラー側でasStringやasIntegerで値を取り出していたアトリビュート名と揃える必要があるためです。他には注意する点などは特にありません。
<input type="text" ${f:text("mail")}>
<input type="text" ${f:text("age")}>
●データの表示
テータの表示は<table>タグを使ってまとめてありますが、ここではJSTLの<c:forEach>タグを使って繰り返し処理をしています。テーブルの内容を出力する部分を見ると、こうなっています。
<c:forEach var="mydata" items="${mydatas}"><c:forEach>は、itemsにあるリストから順にオブジェクトを取り出し、varに用意した変数に代入します。データの内容を出力している部分を見ると、${mydata.myname}というようにEL式を使い変数mydataのプロパティを取り出していることがわかるでしょう。こうやって順にオブジェクトを取り出してはプロパティを表示する……ということを繰り返していけばいいのですね!
<tr>
<td>${mydata.myname}</td>
<td>${mydata.mail}</td>
<td>${mydata.age}</td>
</tr>
</c:forEach>
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<%@page pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@taglib prefix="f" uri="http://www.slim3.org/functions"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Index</title> <link rel="stylesheet" type="text/css" href="/css/global.css" /> </head> <body> <h1>Hello Index !!!</h1> <p>${msg}</p> <form method="post" action="/"> <table> <tr><td>名前</td><td><input type="text" ${f:text("myname")}></td></tr> <tr><td>メール</td><td><input type="text" ${f:text("mail")}></td></tr> <tr><td>年齢</td><td><input type="text" ${f:text("age")}></td></tr> <tr><td></td><td><input type="submit"> </table> </form> <hr> <table border="1"> <c:forEach var="mydata" items="${mydatas}"> <tr> <td>${mydata.myname}</td> <td>${mydata.mail}</td> <td>${mydata.age}</td> </tr> </c:forEach> </table> </body> </html>
※関連コンテンツ