お手本通りのcontroller作成。
間違いで、objectをclassと記述してしまって、ちょっとハマった。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{ Ok(<p>Hello Purgeさん</p>).as(HTML) } }
routesファイル
GET /hello controllers.HelloController.index
日本語も難なく表示した。
今度は、viewファイルを使用してみる。views以下に配置。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{ //Ok(<p>Hello Purgeさん</p>).as(HTML) Ok(views.html.hello()) } }
hello.scala.html
<html> <head> <title>Hello Scala!!</title> </head> <body> <p>こんにちは。Purgeさん!!!!</p> </body> </html>
最初は、controllerから、viewを指定するの記述方法に迷った。とりあえずはこれで動作した。
こんどは、パラメータを受け取ってみる。
HelloController.scala
package controllers import play.api.mvc.Action import play.api.mvc.Controller object HelloController extends Controller { def index = Action{request => val params: Map[String, Seq[String]] = request.queryString val name = params("name").head Ok(views.html.hello(name)) } }
パラメータが見つからないとエラーとなるようなので、あえて下記のようにリクエストにパラメータを付加してみる。
http://localhost:9000/hello?name=ほげ
hello.scala.html
@(name: String) <html> <head> <title>Hello Scala!!</title> </head> <body> <p>こんにちは。@name さん!!!!</p> </body> </html>
パラメータを受けて、名前が表示された。