私のプレイアプリケーションでは、別のページからトリガできるいくつかのアクション(エンティティの「削除」など)があります。アクションがトリガーされた後、私はアクションを実行する前にユーザーを自分が戻ったページにリダイレクトしたいと思います。 Playでこれを使用するには良いパターンがありますか?アクション後に前のページにリダイレクトするためのパターン
8
A
答えて
2
これは私が最後に思いついたものですが、それは特に優雅ではありませんが、私はそれを行うより良い方法に興味があります。私のコントローラに続いて
@(implicit request: RequestHeader)
...
<form action="@routes.Controller.doStuff()" method="post">
<input type="hidden" name="previousURL" value="@request.uri"/>
...
</form>
:私は、現在のページのURLと私のフォームに隠し入力を追加
def doStuff() = Action { implicit request =>
val previousURLOpt: Option[String] =
for {
requestMap <- request.body.asFormUrlEncoded
values <- requestMap.get("previousURL")
previousURL <- values.headOption
} yield previousURL
previousURLOpt match {
case Some(previousURL) =>
Redirect(new Call("GET", previousURL))
case None =>
Redirect(routes.Controller.somewhereElse)
}
}
4
あなたがキャンセルボタンを持っている場合は、簡単にたとえば、あなたのテンプレートで@request.getHeader("referer")
を使用することができますそれは、前のページにリダイレクトする必要があり、これを使用する:
<a href="@request.getHeader("referer")">Cancel</a>
をこの方法で、あなたのテンプレートに余分な情報を渡す必要はありません。 (遊び2.3.4でテスト済み)
1
私はこれを行うために見つけた最も簡単な方法は、お使いのコントローラのメソッド内からで、これを使用する:
を:String refererUrl = request().getHeader("referer");
をので、あなたのような何かをしたいです
public static Result query(String queryStr, int page, int offset) {
String refererUrl = request().getHeader("referer");
Logger.info("refererUrl: " + refererUrl);
if(queryStr.length() < 3) {
flash(Application.FLASH_ERROR_KEY, "type a longer search than '" + queryStr.trim() + "'");
return redirect(refererUrl);
}
return ok(listings.render(searchService.searchListings(queryStr)));
}
フラッシュメッセージを使用してredirect()を実行し、render()を実行する必要はありません。
関連する問題
- 1. ログイン後に前のページにリダイレクトphp
- 2. ログイン後にユーザを前のページにリダイレクト
- 3. Wordpress - ログイン後に前のページにリダイレクト
- 4. POSTリクエスト後にDjangoの前のページにリダイレクトする方法
- 5. 現在のページから前のページにリダイレクトするためのHtaccessコード?
- 6. ログインする前に最後のページにリダイレクト
- 7. Magentoログイン後に前のページにリダイレクトする方法
- 8. 無効な入力の後、前のページにリダイレクトする方法
- 9. 検索後のデータで前のページにリダイレクトするlaravel 4.2
- 10. 前のページへのログイン後リダイレクト
- 11. タイマスクリプトの前のページにリダイレクト
- 12. asp.netの前のページにリダイレクト
- 13. ログイン前に前のページにリダイレクト
- 14. Liferayが正常にログインした後にアクションURLにリダイレクトする
- 15. 別のページにリダイレクトした後
- 16. ユーザーを前のページにリダイレクトする
- 17. Random question:Railsの前のページの前のページにリダイレクトしますか?
- 18. ログイン後別のページにリダイレクト
- 19. kaminari - 最後のページにリダイレクト
- 20. URLをリダイレクトする前にURLを別のページにリダイレクト
- 21. ログイン後元のページにリダイレクトする(Codeigniter)
- 22. AuthFormLoginLocationからのログイン後、前のページにリダイレクト[Apache2 configuration]
- 23. 投稿後に前のページにリダイレクトする必要があります
- 24. 別のページにリダイレクトした後にデータを取得する
- 25. 他のページにリダイレクトした後にフォームを保存する
- 26. セッションが終了した後、以前に閲覧したWebページにリダイレクト
- 27. 別のページを読み込んだ後にページにリダイレクトした後
- 28. 成功ログイン後に他のページにリダイレクト
- 29. Rails 4 - ログイン後にページのアンカーセクションにリダイレクト
- 30. Oktaログインウィジェットログイン後に元のページにリダイレクト
refererをrequest.getHeader経由で取得し、フラッシュまたはセッションのいずれかに格納するよりも優れたものをお探しですか?私はより良い方法についても聞くことに興味があります。更新:ちょうどあなたがスカラについて尋ねたことを理解しました。 –
@alihaider私は以下で使用したソリューションを貼り付けましたが、おそらく参照元を使用する方が良いでしょうか? –
も参照してくださいhttp://stackoverflow.com/questions/14891988/redirect-to-referer-after-a-post-request –