В игре вы всегда следуете за Redirect-After-Post-Pattern, если вы вызываете из общедоступного метода контроллера. Это в большинстве случаев хорошее поведение, но иногда это может быть неприятно. Итак, я попытался выяснить, как это работает в игре 1.1 !: Базовый - это некоторое увеличение байт-кода, которое выполняется в play.classloading.enhancers.ControllersEnhancer
. Там вы можете обнаружить, что по-прежнему существует ряд исключений поведения по умолчанию:Как я могу повлиять на поведение перенаправления в игровом контроллере?
- Если ваш метод помечается аннотацией из пакета
play.mvc
, например, в Before-аннотаций. - Вы комментируете свое действие с помощью
ByPass
-Интеграция, эта аннотация должна быть внутренним классом, поэтому имя заканчивается с$ByPass
.
Оба решения в порядке, если вы всегда хотите подавить перенаправление. Но что, если вы только хотите сделать это в особой ситуации? Затем вы можете позвонить по телефону ControllerInstrumentation.initActionCall()
.
Я не находил описание об этом, я просто анализирую код. Так ли мое заключение правильное или имеет какие-то недостатки?
initActionCall действительно полезен, если вам нужно вызвать другое представление, но не хотите перенаправлять: http://groups.google.com/group/play-framework/browse_thread/thread/59c2aebefb94aac5/62651072b74275e1?lnk=gst&q=redirect # 3f5ccb63d4652565 – Stefano