EBeanによるModelの作成[Java編] (4/5)
作成:2013-03-03 11:13
更新:2013-03-03 11:13
更新:2013-03-03 11:13
■レコードの一覧を表示する
では、続いて保管されているレコード情報を取り出してみましょう。今回は、先に作成したFinderの出番です。では、これもサンプルコードを先にあげておきましょう。(下のリスト欄参照)
今回は、先ほどのフォーム送信の下に、レコードの一覧表示の処理を追加しました。フォームを送信すると、その内容が追加されていくのがわかるでしょう。
ここでは、レコードの一覧を取得するのにコントローラー側(index内)で以下のような処理を行なっています。
たったこれだけ! SampleDataに用意しておいたFinderの「all」メソッドを呼び出すだけで、全SampleDataインスタンスがListにまとめて返されます。ビュー側では、これを元にテーブルを生成すればよいのです。
コントローラーから渡される変数dataから順にdataへとインスタンスを取り出していき、このdata内のフィールドを書き出していきます。テーブルの内容は既にSampleDataインスタンスの形になっていますから、好きなように扱えますね。
今回は、先ほどのフォーム送信の下に、レコードの一覧表示の処理を追加しました。フォームを送信すると、その内容が追加されていくのがわかるでしょう。
ここでは、レコードの一覧を取得するのにコントローラー側(index内)で以下のような処理を行なっています。
List<SampleData> datas = SampleData.find.all();
たったこれだけ! SampleDataに用意しておいたFinderの「all」メソッドを呼び出すだけで、全SampleDataインスタンスがListにまとめて返されます。ビュー側では、これを元にテーブルを生成すればよいのです。
<table>
@for(data <- datas) {
<tr>
<td>@data.id</td>
<td>@data.name</td>
<td>@data.title</td>
<td>@data.memo</td>
</tr>
}
</table>
コントローラーから渡される変数dataから順にdataへとインスタンスを取り出していき、このdata内のフィールドを書き出していきます。テーブルの内容は既にSampleDataインスタンスの形になっていますから、好きなように扱えますね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※Application.java
package controllers;
import java.util.*;
import com.avaje.ebean.*;
import models.*;
import play.*;
import play.mvc.*;
import play.data.*;
import static play.data.Form.*;
import views.html.*;
public class Application extends Controller {
public static Result index() {
String title = "Sample Page";
String msg = "フォームを入力";
Form<SampleData> dataform = form(SampleData.class);
List<SampleData> datas = SampleData.find.all();
return ok(index.render(title, msg, datas, dataform));
}
public static Result sendform() {
Form<SampleData> dataform = form(SampleData.class).
bindFromRequest();
if (!dataform.hasErrors()) {
dataform.get().save();
flash();
}
return redirect(routes.Application.index());
}
}
※index.scala.html
@(title: String, message: String, datas: List[SampleData], sampleform: Form[SampleData])
@import helper._
@main(title) {
<h1>@title</h1>
<p>@message</p>
@form(action = routes.Application.sendform, args = 'id -> "SampleData") {
@inputText(
field = sampleform("name"),
args = '_label -> "名前",
'placeholder -> "名前を入力" )
@inputText(
field = sampleform("title"),
args = '_label -> "題名",
'placeholder -> "タイトル" )
@inputText(
field = sampleform("memo"),
args = '_label -> "メモ",
'placeholder -> "いろいろ書く。" )
<input type="submit">
}
<hr>
<table>
@for(data <- datas) {
<tr>
<td>@data.id</td>
<td>@data.name</td>
<td>@data.title</td>
<td>@data.memo</td>
</tr>
}
</table>
}
※関連コンテンツ