私のスカラトラの「コントローラ」から別の内部URLを呼び出したいと思います。私は単純なリダイレクトを行うことはできません。ユーザーが最初のURLだけにアクセスできるセキュリティ設定があるからです。Scalatra - リクエストの内部リダイレクト/フォワードを行うにはどうすればいいですか?
これを行う方法はありますか?
私のスカラトラの「コントローラ」から別の内部URLを呼び出したいと思います。私は単純なリダイレクトを行うことはできません。ユーザーが最初のURLだけにアクセスできるセキュリティ設定があるからです。Scalatra - リクエストの内部リダイレクト/フォワードを行うにはどうすればいいですか?
これを行う方法はありますか?
get("/foo") {
servletContext.getRequestDispatcher("/bar").forward(request, response)
}
のget()メソッドは(POSTに似た、ら)のように定義されます。
def get(transformers : org.scalatra.RouteTransformer*)(action : => scala.Any) : org.scalatra.Route
は、あなたが内部リダイレクトで何を意味するかに依存し、私はあなただけ別のルートのアクションを実行したいと推定。あなたはできることのいくつかの選択肢があります。これは私のために働いているようだ:
val canonicalEndpoint = get("/first/route") {
//do things in here
}
次に、あなたがその後に行うことができます:
get("/second/route")(canonicalEndpoint.action)
をそして、私はあなたが所望の応答を得ると思います。
私はget()のRouteレスポンス全体を保存するのが好きです。ルーティングでscalatraのurl()関数を使用することもできます。