val datas = Mydata.getAllこれで取得したものをビュー側でテーブルに出力しています。以下の部分ですね。
@for(data:Mydata <- datas){変数datasから順にMydataを取り出し、その値をテーブルとして書き出しています。getAllではas(Mydata.data)によりMydataインスタンスの形で値を取り出すようにしていましたから、こんな具合にコレクションの繰り返し処理で簡単にレコードを処理していくことができます。
<tr>
<td>@data.name</td>
<td>@data.mail</td>
<td>@data.tel</td>
</tr>
}
var myForm = form1.bindFromRequestFormの使い方は前回フォームヘルパーのところで説明しました。bindFromRequestにより送信されたフォーム情報を管理するFormインスタンス(変数form1)にフォームの値をバインドしたものをmyFormとして取得し、そこからgetでMydataを取り出してaddDataする、という流れになります。
val data: Mydata = myForm.get
val result = data.addData
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※Application.scala package controllers import models._ import play.api._ import play.api.mvc._ import play.api.data._ import play.api.data.Form import play.api.data.Forms._ object Application extends Controller { val form1 = Form( mapping( "name" -> text, "mail" -> text, "tel" -> text )(Mydata.apply)(Mydata.unapply) ) def index = Action { val title = "サンプルページ" val msg = "サンプルのページです。" val datas = Mydata.getAll Ok(views.html.index(title, msg, form1, datas)) } def sendform = Action { implicit request => var myForm = form1.bindFromRequest val data: Mydata = myForm.get val result = data.addData val title = "サンプルページ" val msg = "名前:" + data.name + ", メール:" + data.mail Ok(views.html.index(title, msg, myForm, null)) } } ※index.scala.html @(title: String, message: String, myForm: Form[Mydata], datas:List[Mydata]) @main(title) { <h1>@title</h1> <p>@message</p> @helper.form(action = routes.Application.sendform) { @helper.inputText(myForm("name")) @helper.inputText(myForm("mail")) @helper.inputText(myForm("tel")) <input type="submit"> } <hr> @if(datas != null){ <p>Mydata list</p> <table> <tr> <th>Name</th> <th>Mail</th> <th>Tel</th> </tr> @for(data:Mydata <- datas){ <tr> <td>@data.name</td> <td>@data.mail</td> <td>@data.tel</td> </tr> } </table> } }
<< 前へ | 次へ >> |