Wie kann ich eine Methode in einer meiner Controller-Klassen aufrufen, ohne dass Grails versucht, eine Ansicht zu generieren?So rufen Sie eine Aktion auf, ohne eine Ansicht in Grails zu generieren
Antwort
Sie können redirect zu einer anderen Controller-Aktion.
class PuppyController {
def woof() {
redirect(action:'bark')
}
def bark(){
response.write "Moo"
}
}
Irgendwann Sie entweder auf die Antwort schreiben sollte oder sich auf ein Verfahren/Schließung umleiten, die zu einer Ansicht entspricht, damit der Benutzer die Ausgabe empfangen kann.
Wenn die Methode, die Sie anrufen möchten, sich auf einem anderen Controller befindet, besteht die Gefahr, dass Sie sich nicht anmelden.
Wenn ich zum Beispiel eine Controller-Methode habe, die eine Datei hochlädt, und eine andere Methode, die den Dateinamen für diese Datei als eine Kombination einiger Konventionen erstellt (z. B. Zeitstempel + "hübsche Datei für" + Benutzername) Auf einem anderen Controller sollten Sie diese Controller-Methode auf Service heraufstufen und in beide Controller einspeisen.
class FooController {
def fooAction() {
render("Successful call to fooAction")
}
}
Im Wesentlichen können Sie eine Controller-Instanz erstellen (über 'neues' Schlüsselwort) und dann die gewünschte Aktion aufrufen. Bitte geben Sie weitere Details über das, was Sie tun möchten, so kann ich eine bessere Antwort geben ...
- 1. So rufen Sie eine Vorlagenmethode auf?
- 2. So rufen Sie die JavaScript-Funktion in HTML auf, ohne auf eine Schaltfläche zu klicken?
- 3. So rufen Sie Aktion von Ajax
- 4. So rufen Sie das Formular auf Aktion auf Bild zurücksetzen?
- 5. So rufen Sie NetworkStream.Read() ohne Blockierung auf?
- 6. So rufen Sie die Controller-Aktion in Laravel auf und führen eine Validierungsanfrage aus
- 7. So verzögern Sie eine Aktion (oder) So steuern Sie den Programmablauf, um auf eine bestimmte Aktion zu warten
- 8. So rufen Sie eine Aktivität aus einer Vorzugsaktivität auf?
- 9. So rufen Sie Stored Procedure in einer Ansicht auf?
- 10. So rufen Sie eine Erweiterungsmethode ohne Verwendung von
- 11. So rufen Sie die Funktion in einer Ansicht auf
- 12. So rufen Sie eine verschachtelte Niveaustufe in Python auf?
- 13. C# - So rufen Sie eine in Projektlösung hinzugefügte EXE auf
- 14. So rufen Sie eine Funktion in einem Objekt auf
- 15. So senden Sie eine Aktion und rufen Sie Component-Methode in Redux
- 16. So rufen Sie eine Hostfunktion in einem CUDA-Kernel auf?
- 17. So rufen Sie eine Methode in Java mit Reflektion auf
- 18. So rufen Sie eine Skalarfunktion in einer gespeicherten Prozedur auf
- 19. So rufen Sie eine Erlang-Funktion in Elixir auf
- 20. So rufen Sie eine Daten zwischen Daten
- 21. So rufen Sie eine Methode von einem Dienst auf?
- 22. So rufen Sie die JSF-Aktion für eine anonyme Klasse auf? EL kann nicht darauf zugreifen
- 23. So rufen Sie eine WebAPI2 von VB.NET
- 24. So rufen Sie eine Funktion, PostgreSQL
- 25. So rufen Sie Attributwerte zu JavaScript auf
- 26. So rufen Sie eine PHP-Datei zu canvasjs
- 27. So rufen Sie eine Merkmalsmethode mit Aliasnamen auf
- 28. So rufen Sie eine private API von Monotouch auf?
- 29. So rufen Sie eine PHP-Funktion auf Knopfdruck
- 30. So rufen Sie eine Dart-Funktion aus Javascript auf?
wo rufst du an und was willst du tun –
Eine Aktion in einem Controller muss immer senden etwas zurück zum Benutzer. Es muss jedoch keine GSP-Seite oder HTML sein, Sie können eine Antwort beliebigen Typs selbst erstellen. Wie wir bereits angedeutet haben, müssen wir wissen, was Sie erreichen wollen, um Ihnen zu helfen, eine Lösung zu finden. – David
haben Sie versucht, 'render'? – neodevelop