PLAYフレームワーク2.2.1でWebアプリケーションを構築していますが、要求されたサイトのすべての利用可能なhttp getクエリパラメータをアドレスバーに表示しようとしています要求に設定します。 すべてのhttp取得パラメータが設定されていない場合は、デフォルト値で未設定のパラメータを追加してリダイレクトします。Play Framework:引数を使用してコントローラメソッドにリダイレクトする
私がGETして要求することができるサイトがあります。ここでは
GET /test controllers.Application.test(q:String, w:String ?= null, f:String ?= null, o:String ?= null)
は、私がcontrollers.Application
にしたいのですが方法である:
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(...);
}
}
問題は(そのリダイレクトされます) ResultオブジェクトではなくStringをとります。
私の最初のソリューションは、
return controllers.Application.test(qDefault, wDefault, fDefault, oDefault);
を書くことしかし残念ながらアドレスバーが更新されないです。
私の第二の溶液は、手動で文字列を構築することです:
return redirect("/test?q=" + query + "&f=" + f + "&w=" + w + "&o=" + showOptions);
これはうまく動作しますが、これを行うには、他の方法よりエレガントな方法はありませんか?