Play Framework でつぶやきアプリを開発(その3: 超簡易つぶやきアプリを完成させよう)
今回は、超簡易つぶやきアプリを完成させてみよう。
まずは、前回の記事でテーブルに投入したレコードを/inputchatにアクセスしたときに表示できようにしたいと思う。
1. レコードを取得する。
コントローラのApplication.inputchat()メソッドを下記の通り変更する。
public static Result inputchat() { //フォームを定義 Form<PostChatForm> postChatForm = new Form(PostChatForm.class); //grpchatテーブルの内容をselectし、Listに格納する。 List<Grpchat> grpchatAllRec = Grpchat.find.all(); return ok(inputchat.render("InputChatForm",postChatForm, grpchatAllRec)); }
前回の記事で説明を割愛したが、Grpchatのfindフィールドはこのように使う。
このfind フィールドによりレコード(MySQL)の内容をList化(Java)することができるのである。
//grpchatテーブルの内容をselectし、Listに格納する。
List<Grpchat> grpchatAllRec = Grpchat.find.all();
そして、このList化したオブジェクトを下記でView側に渡す。
return ok(inputchat.render("InputChatForm",postChatForm, grpchatAllRec));
2. View側で表示する。
View 側ではController側から渡されたリストを受けて(grpchatList)、それらをfor文で回す(@for(chatrec <- grpchatList){***})
ようにすればOKだ。
@(message: String, postchatform: Form[forms.PostChatForm], grpchatList:List[Grpchat]) @import helper._ This resource is @message. @form(routes.Application.postchat()) { @inputText(postchatform("postMessage")) } @for(chatrec <- grpchatList){ @chatrec.message / @chatrec.postdate<br> }
最後にController側をちょっと弄って、投稿した後に/inputchat にリダイレクトされるようにしておく。
■Application.postchat()
public static Result postchat(){ //中略 //return ok(postchat.render(postMessage)); return redirect("/inputchat"); }
ここまでできたら、http://localhost:9000/inputchatにアクセスして、動作を確認してみよう。
超簡易的なチャット機能ができたはずだ。