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 件のコメント:
コメントを投稿