(コール):backTo
を想定しPlayでは、カスタムクエリパラメータを逆引きURLに含めるにはどうすればよいですか?以下のようなルートで
def view (id: String) = Action {r =>
val backTo = r.getQueryString("backTo") // read custom param
...
}
はIオプションのクエリ文字列パラメータです:コントローラで
GET /users/:id controllers.Users.view(id)
を、私はこのようなカスタムbackTo
クエリ文字列のparamを読むことができますルート定義に含めたくない(すべてのアクションがそれを読むことができるかもしれない)。
backTo
パラメータを含むリバースルーティングを使用してURLを作成するにはどうすればよいですか。
routes.Users.view(id).withQueryString("backTo" -> Seq("previous"))
しかし、それは存在しません:
私のような何かを期待します。
残念ながら、これはURLを再解析する必要があります。なぜなら、「id」パラメータがパスパラメータ(実装の詳細)であるという前提をできないからです。 "/ users?id = 24?backTo = home" –
@AlvaroCarrascoあなたがルートの正しい順序を保つならば( 'GET/users ...'最初の 'GET /ユーザは:/ id ... '後で)二重疑問符は、とにかく、有効なルーティング構文を使用して発生しませんIMHOはまだずっと安全です – biesior
@biesior私のポイントは、逆ルーティングが実際の実装を心配する必要はないルート。単一のルートを 'path param'から' query param'を使用するように変更すると、自動的に無効なURLが生成されることはありません。 –