Yürütme uygulamasında farklı sayfalardan tetiklenebilecek çeşitli eylemler (ör. "Bir öğeyi sil") var. Eylem tetiklendikten sonra, eylemi gerçekleştirmeden önce kullanıcıyı tekrar yönlendirdikleri sayfaya yönlendirmek istiyorum. Bu oyunda kullanmak için iyi bir desen var mı?Bir eylemden sonra önceki sayfaya yönlendirmek için desen
8
A
cevap
2
Özellikle zarif olmadığına göre, sonunda ortaya çıkmış olduğum şey budur ve bunu yapmanın daha iyi yollarıyla ilgilenirim. benim denetleyicisi Sonra
@(implicit request: RequestHeader)
...
<form action="@routes.Controller.doStuff()" method="post">
<input type="hidden" name="previousURL" value="@request.uri"/>
...
</form>
: Ben geçerli sayfa URL ile benim forma gizli girdi eklendi
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
Eğer bir iptal düğmesi varsa kolayca örneğin, şablonları içinde @request.getHeader("referer")
kullanabilirsiniz önceki sayfaya yönlendirebilir gerektiğini, bunu kullanın:
<a href="@request.getHeader("referer")">Cancel</a>
bu yolla, şablonlarınızdan için herhangi bir ekstra bilgi aktarmak gerekmez. (Oynatma 2.3.4 ile test)
1
Bunu yapmak için bulduğum en kolay şekilde, kontrolör yöntemi içinde olduğunu, bunu kullanın:
:String refererUrl = request().getHeader("referer");
Yani, böyle bir şey yapmak istiyorum
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)));
}
Bir flash ileti ile bir yönlendirme() ve bir render() yapmamanız gerektiğini unutmayın.
İlgili konular
- 1. Kullanıcıyı giriş yaptıktan sonra önceki sayfaya geri dön (Rails)
- 2. Kayıt ekledikten sonra PHP bir önceki sayfaya dön
- 3. Önceki Sayfaya Git URL
- 4. Link Excel Cell aynı ada sahip bir sayfaya yönlendirmek için
- 5. Symfony2: Her eylemden sonra bir kod yürütün
- 6. Flask/Werkzeug, giriş yaptıktan sonra önceki sayfaya nasıl dönülür
- 7. Web Sayfasında Önceki Sayfaya Dön
- 8. Twig'de önceki sayfaya nasıl dönebilirim?
- 9. Codeigniter Denetleyici bir önceki sayfaya dön
- 10. İlk sayfaya gitmeden aynı sayfaya yönlendirmek için Açısal Js içinde sayfalama
- 11. php bir görevi başarıyla tamamladıktan sonra kullanıcıyı başka bir sayfaya yönlendirmek gerekiyor
- 12. PopAsync kullanarak önceki sayfaya nasıl veri aktarılır?
- 13. Herhangi bir Internet Explorer kullanıcısını belirli bir sayfaya yönlendirmek için raylarda 3 bir yolu var mı?
- 14. Sayfa bir önceki sayfadan yönlendirilir veya sayfaya yönlendirilmez.
- 15. Ses dosyası, bir önceki sayfaya dönülürken otomatik olarak oynatılır
- 16. Olayları işlemek için desen desen
- 17. jquery FadeIn Bir öğe önceki FadeOut sonra?
- 18. Oturum açtıktan sonra önceki URL'ye yönlendirme - Raylar
- 19. POST isteği sonrası Django'da önceki sayfaya nasıl yönlendirilir?
- 20. docker-exec çıktısını yönlendirmek için
- 21. Gönderme sayfası, sayfaya yönlendirmek yerine, angular $ http değerinin başarısı için hızlı yönlendirme gönderim sayfasını yönlendiriyor
- 22. POST isteğinden sonra aynı sayfaya nasıl yönlendirme
- 23. Doğru yönlendirmek için htaccess kullanma
- 24. Yönlendirmeli sayfaya geri dön
- 25. Ayrı bir sayfa arayarak yönlendirmek mantıklı mı?
- 26. Çıktı Aktarımına Yazma Eylemden Akım
- 27. Vue-Router kullanarak giriş yaptıktan sonra istenen sayfaya yönlendirin
- 28. Belirtilen bir desen (virgül) sonra bir dize kesme (virgül)
- 29. Bir pop-up onayından sonra diğer sayfaya nasıl yönlendirilir iyonik
- 30. ana sayfaya nasıl yönlendirilir
refer.getHeader aracılığıyla referer'ı almaktan ve flaş veya oturumda saklamaktan daha iyi bir şey mi arıyorsunuz? Daha iyi yollardan da haberdar olmak isterdim. Güncelleme: Sadece scala hakkında sorduğunuzu anladı. –
@alihaider Aşağıda kullandığım çözümü yapıştırdım, ancak yönlendireni kullanmak daha iyi olabilirdi? –
Ayrıca bkz. Http://stackoverflow.com/questions/14891988/redirect-to-referer-after-a-post-request –