Как я могу повлиять на поведение перенаправления в игровом контроллере?
-
29-09-2019 - |
Вопрос
В игре вы всегда следуете Перенаправление-аоттер-пост-паттерн Если вы звоните из общественного метода контроллера. В большинстве случаев это хорошее поведение, но иногда оно может быть противным. Поэтому я попытался выяснить, как это работает в игре 1.1!: Основным является некоторое усиление байтового кода, которое сделано в play.classloading.enhancers.ControllersEnhancer
. Анкет Там вы можете обнаружить, что все еще существуют некоторые исключения в поведении по умолчанию:
- Если ваш метод аннотируется аннотацией из пакета
play.mvc
, например, до спины. - Вы аннотируете свои действия с
ByPass
-Нотация, эта аннотация должна быть внутренним классом, поэтому имя Endswith$ByPass
.
Оба решения в порядке, если вы всегда хотите подавить перенаправить. Но что, если вы хотите сделать это только в особой ситуации? Тогда вы можете позвонить ControllerInstrumentation.initActionCall()
.
Я не нахожу описание об этом, я просто анализирую код. Так правильно ли мой вывод или есть какие -либо недостатки?
Решение
Для того, что я знаю, что вы предполагаете, верны.
Тем не менее, за то, что я понимаю, вы хотите, чтобы метод, который заканчивается после выполнения, и ничего не возвращается? Не добавляйте «рендеринг» вызова в конце (или любой звонок на другой метод), и это должно работать. Я использую его для рабочих мест CRON.