15

私はScalaを使用してPlay(2.0)のコントローラーアクション内でリダイレクトを行う方法を理解しようとしています。

を使用したリダイレクト

Redirect(routes.Application.index)

うまく動作します。

ドキュメント、API、またはGoogleから理解できないのは、呼び出しにパラメーターを追加する方法です。

私はGrailsから来ており、これは次のように簡単に行うことができます。

リダイレクトアクション: "インデックス"、パラメータ:["キー":"値"]。

私が見つけた唯一の方法は、文字列urlとクエリ文字列を使用してリダイレクトを呼び出すことです。これは厄介なようです。

基本的にはどういうわけかRedirect(Call)を利用したいのですが、リバースルーティングを使ってCallオブジェクトを作成する方法はありません。

Play / Scalaで何かが足りない/コンセプトがわからないのですか?

前もって感謝します!

4

2 に答える 2

17

Ellou '

ルートは単なる関数なので、通常どおり引数を渡すことができます。

// Redirect to /hello/Bob
def helloBob = Action {
    Redirect(routes.Application.hello("Bob"))    
}

このスニペットはhttp://www.playframework.org/documentation/2.0/ScalaRouting(下部)からのものです

于 2012-04-04T21:38:32.203 に答える
1

コントローラでこのためだけに別の関数を作成することを回避することもできます。ルート設定では、次のようなものを追加するだけです。

  GET  /google  @controllers.Default.redirect(to = "http://google.com")
于 2015-03-01T06:37:05.567 に答える