В игре вы всегда следуете Redirect-After-Post-Pattern , если вы вызываете из public-метода контроллера.В большинстве случаев это хорошее поведение, но иногда это может быть неприятно.Поэтому я попытался выяснить, как это работает в игре 1.1 !: Основным является некоторое улучшение байт-кода, которое сделано в play.classloading.enhancers.ControllersEnhancer
.Там вы можете обнаружить, что все еще существуют некоторые исключения из поведения по умолчанию:
- Если ваш метод аннотирован из пакета
play.mvc
, например, до-аннотации. - Вы аннотируете свое действие с помощью
ByPass
-Аннотации, эта аннотация должна быть внутренним классом, поэтому имя заканчивается $ByPass
.
Оба решения хороши, если вы всегдахочу подавить перенаправление.Но что, если вы хотите сделать это только в особой ситуации?Тогда вы можете позвонить ControllerInstrumentation.initActionCall()
.
Я не нахожу описания по этому поводу, я просто анализирую код.Так что мой вывод верен или есть какие-то недостатки?