Witam wszystkich Mam niektóre strony jsp i używam struts2 do obsługi moich formularzy. Po przesłaniu formularza przez użytkownika, adres URL wyświetlany na pasku adresu staje się somthing.action, więc gdy użytkownik odświeży stronę, formularze zostaną przesłane ponownie. Jak mogę sobie z tym poradzić? po przesłaniu formularza.Unikaj podwójnego przesyłania strony Struts 2 jsp.
Odpowiedz
Jeśli celem jest zapobieganie zduplikowanych składanie formularzy następnie użyć token
http://struts.apache.org/2.x/docs/token-interceptor.html przechwytywania lub tokenSession
przechwytywania http://struts.apache.org/2.x/docs/token-session-interceptor.html.
Jeśli po prostu chcesz odświeżyć stronę po przesłaniu bez ponownego przesyłania, przekieruj do działania, w którym wyświetlasz tylko wyniki, a nie formularz. Użyj do tego wyniku redirectAction
.
POST REDIRECT GET
Ten wzorzec musi być przestrzegane, aby zapobiec ponownemu złożenie formularza na odświeżaniu. Oznacza to, że po przesłaniu żądania, POST
, powinien wysłać odpowiedź REDIRECT
, aby pobrać stronę docelową za pomocą GET
. W przypadku tego wzorca, jeśli użytkownik odświeży stronę, tylko żądanie GET nastąpi ponownie, więc ta sama strona zostanie pobrana bez aktualizacji niczego na serwerze.
Jest to popularny wzór zalecany dla stron internetowych. Google zapewniłoby wiele zasobów na ten temat.
+1 dla obu pozostałych odpowiedzi.
Post/Redirect/Get to klasyczny wzór dla każdej technologii internetowej.
Token Interceptor to kolejny sposób na przejście, gdy używasz Struts2;
Jest trzecia droga, jeśli nie zależy Ci na retro kompatybilności ze starszymi przeglądarkami lub przeglądarkach z wyłączoną obsługą JavaScript: HTML5 's window.history.pushState
.
Po prostu zresetuj adres URL do oryginalnego po załadowaniu strony, a naciśnięcie F5 spowoduje wyświetlenie oryginalnej strony zamiast ponownego przesłania żądania.
$(document).ready(function() {
window.history.pushState("","", "myOriginalUrlWithNoParams");
});
+1 za sztuczkę HTML5. –
- 1. jsp: forward forward do akcji Struts 2
- 2. Liferay with Struts, JSP
- 3. Unikaj podwójnego konkatatu w Ramdzie
- 4. Struts 2 gniazdowania iteratory
- 5. Unikaj podwójnego wpisywania nazw klas w pytonie.
- 6. unikaj podwójnego odświeżania wykresu w błyszczącym
- 7. Struts Przesyłanie plików 2 Problemy z konfiguracją przechwytywacza
- 8. Jak uzyskać adres URL działania w jsp przy użyciu Struts 2
- 9. Log4j Logger for Struts 2 Exceptor Interceptor
- 10. Struts 2 "%" znak i "#" w OGNL
- 11. Get HttpServletRequest w Struts 2 kolektora
- 12. Wstaw obraz do strony jsp.
- 13. Struts 2 Konwersja typów akcji przy użyciu adnotacji
- 14. Jak uniknąć ponownego przesyłania w jsp po odświeżeniu?
- 15. Java otrzymuje pierwsze 2 cyfry dziesiętne podwójnego
- 16. Efektywne dzielenie podwójnego przez moc 2
- 17. Czy można renderować plik bez rozszerzenia .jsp jako strony JSP?
- 18. Czy możliwe jest użycie strony JSP jako szablonu dla serwletu?
- 19. Struts - przesyłanie plików
- 20. Jak wcześniej przerwać przetwarzanie strony JSP?
- 21. Jak odzyskać bieżącą nazwę strony w JSP?
- 22. zmienna od .jsp do strony html
- 23. Uzyskaj wszystkie parametry ze strony JSP
- 24. Jak wykrywać przycisk przesyłania kliknięty w scenariuszu z kilkoma przyciskami przesyłania w pojedynczej klasie działania?
- 25. Struts 2 + Integracja z serwletem 3 - NPE w FreemarkerDecoratorServlet
- 26. Jak przekazać parametr do wywołania metody w Struts 2 OGNL
- 27. Jak używać Struts 2 z Prędkością i Płytkami?
- 28. Numer formatu w tagach Struts 2 <s:property/>
- 29. Pobieranie pliku za pomocą Java, Struts 2 i AJAX
- 30. Jak zintegrować restful Web Services z Struts 2
Dziękuję Aleksandr M .... – edaklij