(月並みな説明)
Playが圧倒的にラク
ラクであることはたしかだ。
だがしかし…というのが今日のテーマ
def list = Action { implicit request =>
Ok(views.html....)
}
本当はこうしたい
val myForm = Form(
"name" -> nonEmptyText,
"file" -> file("filename")
)
リアル
Action(parse.multipartFormData) { implicit request =>
myForm.bindFromRequest(request)...
.
request.body.file("filename").map { f =>
...
}
}
scala> import play.api.libs.json._
import play.api.libs.json._
scala> import play.api.libs.json.Generic._
import play.api.libs.json.Generic._
scala> case class User(id: Long, name: String, age: Int)
defined class User
scala> implicit def userFormat: Format[User] =
productFormat3("id", "name", "age")(User.apply)(User.unapply)
userFormat: play.api.libs.json.Format[User]
scala> Json.toJson(User(1, "peter", 20))
res0: play.api.libs.json.JsValue = {"id":1,"name":"peter","age":20}
scala> Json.stringify(Json.toJson(User(1, "peter", 20)))
res1: String = {"id":1,"name":"peter","age":20}
lift-json使えば良いと思う
import com.github.tototoshi.play2.json.LiftJson
import net.liftweb.json._
case class Person(id: Long, name: String, age: Int)
object Application extends Controller with LiftJson {
implicit val formats = DefaultFormats
def get = Action { implicit request =>
Ok(Extraction.decompose(Person(1, "ぱみゅぱみゅ", 19)))
}
def post = Action(liftJson) { implicit request =>
Ok(request.body.extract[Person].name)
}
}
object Coffee extends DBTable (
"jdbc:postgresql://localhost/coffeeshop",
"coffee"
)
ごめんなさい。あまり知りません。
Q.次のうちでコンパイルが通るものは?
吐かれるHTMLがわからない。
running(FakeApplication()) {
...
}
Play20 は
ご清聴ありがとうございました