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> }
※関連コンテンツ