Play Framework 2.5 で フォームを使ってみたときのメモ
入力して、その文字列の表示まで
イメージはこんな感じです
コントローラの記述
formsample.scala.html
package controllers import javax.inject.{Inject, Singleton} import play.api.data._ import play.api.data.Forms._ import play.api.i18n.{I18nSupport, MessagesApi} import play.api.mvc.{Action, Controller} case class UserData(name: String, age: Int) @Singleton class FormSample @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { val userForm = Form( mapping( "name" -> text, "age" -> number )(UserData.apply)(UserData.unapply) ) def index = Action { Ok(views.html.formsample("名前と年齢を入力", userForm)) } def submit = Action(parse.form(userForm)) { implicit request => val userData = request.body val res = "text : " + userData.name + " number : " + userData.age Ok(views.html.formsample(res, userForm)) } }
ここのFormで別のものをインポートしてしまったため少しはまりました
Viewの記述
formsample.scala.html
@(message:String,userForm: Form[UserData])(implicit messages:Messages) @import helper._フォームのサンプル フォームのサンプル
@message
@helper.form(action = routes.FormSample.submit) { @inputText(userForm("name")) @inputText(userForm("age")) }
ルーティングを記述
routes
GET / controllers.FormSample.index POST / controllers.FormSample.submit
0 件のコメント:
コメントを投稿