Ich habe einen Filter, den ich in meiner Play-Anwendung verwende. Ich habe einen einzigen Fall für diesen Filter, um sein Verhalten zu ändern. Ich brauche einen Weg, um zu bestimmen, welche Aktionen mit diesem Fall übereinstimmen.Bestimmen Sie die Framework-Aktion von Router
Meine Gedanken sind derzeit, entweder eine Liste von kommentierten Controller-Aktionen zu erstellen oder nach Aktionen eines bestimmten Typs zu suchen.
Derzeit hat mein Filter die play.api.routing.Router injiziert.
Wie würde ich feststellen, mit welcher Aktion die aktuelle Anfrage bearbeitet würde?
Ist es möglich, die zugrunde liegende Aktion anhand des Umbruchfilters zu bestimmen?
EDIT (Hinzufügen von Testaufbau):
object MyController extends Controller {
def test1= Action {
Results.Ok
}
def test2 = Action {
Results.Ok
}
}
, die von
new GuiceApplicationBuilder()
.configure(c)
.bindings(new RouterTagsTestModule(c))
.overrides(
bind[Router].to(Router.from {
case play.api.routing.sird.GET(p"/test1") => MyController.test1
case play.api.routing.sird.GET(p"/test2") => MyController.test2
})
).build()
Sie möchten also in Ihrem Filter wissen, welche Methode die aktuelle URL behandelt (zB: "/ login" -> LoginCtrl.processLogin())? – Salem
Ja, so dass ich entweder die Action-Klasse überprüfen kann. Oder prüfen Sie, ob die Methode kommentiert wurde. –
Der Methodenname könnte auch funktionieren. –