Ich bin eine Webanwendung mit PLAY-Framework 2.2.1 erstellen und versuche, alle verfügbaren http get Abfrageparameter für die angeforderte Website in der Adressleiste anzuzeigen, auch diejenigen, die nicht sind in der Anfrage festgelegt. Wenn nicht alle HTTP-Get-Parameter festgelegt sind, möchte ich die nicht festgelegten Parameter mit den Standardwerten hinzufügen und eine Umleitung vornehmen.Play Framework: Umleiten an Controller-Methode mit Argumenten
Ich habe eine Seite, die mit GET angefordert werden kann:
GET /test controllers.Application.test(q:String, w:String ?= null, f:String ?= null, o:String ?= null)
Hier ist die Methode, die ich in controllers.Application
haben möchte:
public static Result test(String q, String w, String f, String o){
...
// In case not all parameters where set
if (reload == 1){
return redirect(controllers.Application.test(qDefault, wDefault, fDefault, oDefault));
}
else {
ok(...);
}
}
Das Problem ist, dass Redirect() nimmt ein String und kein Ergebnisobjekt.
Meine erste Lösung ist
return controllers.Application.test(qDefault, wDefault, fDefault, oDefault);
zu schreiben, aber leider ist die Adressleiste nicht aktualisiert.
Meine zweite Lösung ist die Zeichenfolge manuell zu erstellen:
return redirect("/test?q=" + query + "&f=" + f + "&w=" + w + "&o=" + showOptions);
Dies funktioniert gut, aber es gibt keine andere Art und Weise eleganter Weg, dies zu tun?