Как я могу влиять на поведение перенаправления в игровом контроллере? - PullRequest
13 голосов
/ 10 октября 2010

В игре вы всегда следуете Redirect-After-Post-Pattern , если вы вызываете из public-метода контроллера.В большинстве случаев это хорошее поведение, но иногда это может быть неприятно.Поэтому я попытался выяснить, как это работает в игре 1.1 !: Основным является некоторое улучшение байт-кода, которое сделано в play.classloading.enhancers.ControllersEnhancer.Там вы можете обнаружить, что все еще существуют некоторые исключения из поведения по умолчанию:

  1. Если ваш метод аннотирован из пакета play.mvc, например, до-аннотации.
  2. Вы аннотируете свое действие с помощью ByPass -Аннотации, эта аннотация должна быть внутренним классом, поэтому имя заканчивается $ByPass.

Оба решения хороши, если вы всегдахочу подавить перенаправление.Но что, если вы хотите сделать это только в особой ситуации?Тогда вы можете позвонить ControllerInstrumentation.initActionCall().

Я не нахожу описания по этому поводу, я просто анализирую код.Так что мой вывод верен или есть какие-то недостатки?

1 Ответ

2 голосов
/ 21 января 2011

Насколько я знаю, ваши предположения верны.

Тем не менее, для того, что я понимаю, вы хотите метод, который заканчивается после выполнения и ничего не возвращает? Не добавляйте какой-либо вызов «render» в конце (или любой вызов другого метода), и это должно сработать. Я использую это для работы cron.

...