W grze zawsze podążasz za Redirect-After-Post-Pattern, jeśli zadzwonisz z publicznej metody kontrolera. Jest to w większości przypadków dobre zachowanie, ale czasami może być nieprzyjemne. Więc próbowałem dowiedzieć się, jak to działa w grze 1.1 !: Podstawowym jest pewne ulepszenie kodu bajtowego, które jest wykonywane w play.classloading.enhancers.ControllersEnhancer
. Może się okazać, że wciąż istnieje pewne wyjątki domyślnego zachowania:Jak mogę wpływać na zachowanie przekierowania w kontrolerze gry?
- Jeśli metoda jest odnotowany przez adnotacją z pakietu
play.mvc
, na przykład adnotacji wcześniej nie. - Opisujesz swoją czynność za pomocą
ByPass
-Annotacja, ta adnotacja musi być wewnętrzną klasą, więc jej nazwa kończy się na$ByPass
.
Oba rozwiązania są dobre, jeśli zawsze chcesz tłumić przekierowanie. Ale co, jeśli chcesz zrobić to tylko w wyjątkowej sytuacji? Następnie możesz zadzwonić pod numer ControllerInstrumentation.initActionCall()
.
Nie znajduję opisu, po prostu analizuję kod. Czy moje wnioski są prawidłowe lub mają jakieś wady?
initActionCall jest rzeczywiście przydatny, jeśli potrzebujesz wywołać inny widok, ale nie chcesz przekierowywać: http://groups.google.com/group/play-framework/browse_thread/thread/59c2aebefb94aac5/62651072b74275e1?lnk=gst&q=redirect # 3f5ccb63d4652565 – Stefano