50 lines
1.8 KiB
Scala
50 lines
1.8 KiB
Scala
package controllers
|
|
|
|
import javax.inject._
|
|
import play.api.mvc._
|
|
|
|
import play.api.data._
|
|
import play.api.data.Forms._
|
|
|
|
case class $model;format="Camel"$Data(name: String, age: Int)
|
|
object $model;format="Camel"$Data {
|
|
def unapply(data: $model;format="Camel"$Data): Option[(String, Int)] = Some((data.name, data.age))
|
|
}
|
|
|
|
// NOTE: Add the following to conf/routes to enable compilation of this class:
|
|
/*
|
|
GET /$model;format="camel"$ controllers.$model;format="Camel"$Controller.$model;format="camel"$Get()
|
|
POST /$model;format="camel"$ controllers.$model;format="Camel"$Controller.$model;format="camel"$Post()
|
|
*/
|
|
|
|
/**
|
|
* $model;format="Camel"$ form controller for Play Scala
|
|
*/
|
|
class $model;format="Camel"$Controller @Inject()(mcc: MessagesControllerComponents) extends MessagesAbstractController(mcc) {
|
|
|
|
val $model;format="camel"$Form = Form(
|
|
mapping(
|
|
"name" -> text,
|
|
"age" -> number
|
|
)($model;format="Camel"$Data.apply)($model;format="Camel"$Data.unapply)
|
|
)
|
|
|
|
def $model;format="camel"$Get() = Action { implicit request: MessagesRequest[AnyContent] =>
|
|
Ok(views.html.$model;format="camel"$.form($model;format="camel"$Form))
|
|
}
|
|
|
|
def $model;format="camel"$Post() = Action { implicit request: MessagesRequest[AnyContent] =>
|
|
$model;format="camel"$Form.bindFromRequest().fold(
|
|
formWithErrors => {
|
|
// binding failure, you retrieve the form containing errors:
|
|
BadRequest(views.html.$model;format="camel"$.form(formWithErrors))
|
|
},
|
|
$model;format="camel"$Data => {
|
|
/* binding success, you get the actual value. */
|
|
/* flashing uses a short lived cookie */
|
|
Redirect(routes.$model;format="Camel"$Controller.$model;format="camel"$Get()).flashing("success" -> ("Successful " + $model;format="camel"$Data.toString))
|
|
}
|
|
)
|
|
}
|
|
}
|