Coś jak to powinno działać:
GET /foo controllers.MyController.foo(name: String ?= "", age: Int ?= 0)
Ponieważ twoje parametry mogą być przerwane musisz podać domyślne wartości dla nich (i obsługiwać te wartości w funkcji regulatora).
Powinieneś być w stanie uzyskać dostęp do innych opcjonalnych parametrów w sterowniku jeśli przechodzą w sposób dorozumiany wniosek i uzyskać dostęp do parametru getQueryString (dodane w zagraj 2.1.0 chyba):
def foo(name: String, age: Integer) = Action { implicit request =>
val authCode: Option[String] = request.getQueryString("authCode")
...
}
Ładniejszym sposobem nie może to być po prostu zabrać opcjonalną nazwę i wiek z parametrów regulatora i wydobyć wszystko z kwerendy:
def foo = Action { implicit request =>
val nameOpt: Option[String] = request.getQueryString("name")
val ageOpt: Option[String] = request.getQueryString("age")
...
}
aktualizacji: the current docs do 2.1.1 są nieco f o to (od utrwalono emisyjnej # 776), ale jest to kolejny (i najlepiej, IMHO) opcja:
GET /foo controllers.MyController.foo(name: Option[String], age: Option[Int])
I ...
def foo(name: Option[String], age: Option[Int]) = Action { implicit request =>
Ok(s"Name is: $name, age is $age")
}
Bardzo związane z http: // stackoverflow .pl/questions/9657163/how-to-handle-optional-query-parameters-in-play-framework –