Frage

Sie spielen die immer folgen Redirect-After-Post-Muster , wenn Sie von einer öffentlich-Methode eines Controllers aufrufen. Dies ist in den meisten Fällen ein gutes Verhalten, aber irgendwann könnte es böse sein. Also habe ich versucht, um herauszufinden, wie es funktioniert im Spiel 1.1 !: Der Grund ist einig Byte-Code-Erweiterung, die in play.classloading.enhancers.ControllersEnhancer erfolgt. Dort kann man feststellen, dass es immer noch einige Ausnahmen von dem Standardverhalten vorhanden ist:

  1. Wenn Ihre Methode wird durch eine Anmerkung aus dem Paket play.mvc kommentiert zum Beispiel der Vor-Annotation.
  2. Sie Ihre Aktion mit dem ByPass-Annotation mit Anmerkungen versehen, diese Annotation muss eine innere Klasse so der Name endsWith $ByPass sein.

Beide Lösungen sind in Ordnung, wenn man immer die Umleitung zu unterdrücken wollen. Aber was, wenn Sie es nur in besonderer Situation zu tun? Dann können Sie ControllerInstrumentation.initActionCall() nennen.

Ich habe keine Beschreibung darüber finden, analysiere ich nur den Code. So sind meine Schlussfolgerung richtig oder haben die irgendwelche Nachteile?

War es hilfreich?

Lösung

Für das, was ich weiß, Sie Annahmen richtig sind.

sagte, dass, für das, was ich verstehe Sie eine Methode wollen, dass endet nach nichts Ausführung und kehrt? Fügen Sie keinen „machen“ Anruf am Ende (oder einen Anruf an einem anderen Methode) und das sollte funktionieren. Ich benutze es für Cron-Jobs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top