Я создаю веб-приложение с фреймворком PLAY 2.2.1 и пытаюсь отобразить все доступные параметры запроса http get для запрашиваемого сайта в адресной строке, даже те, которые не являются установленный в запросе. В случаях, когда не все параметры http get заданы, я хочу добавить неустановленные параметры со значениями по умолчанию и сделать перенаправление.Play Framework: перенаправление на метод контроллера с аргументами
У меня есть сайт, который может быть запрошена с ГЭТ:
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(...);
}
}
Проблема заключается в том, что редирект() принимает объект String, а не Result.
Мой первый решение написать
return controllers.Application.test(qDefault, wDefault, fDefault, oDefault);
Но, к сожалению, бар адрес не обновляется.
Мое второе решение построить строку вручную:
return redirect("/test?q=" + query + "&f=" + f + "&w=" + w + "&o=" + showOptions);
Это прекрасно работает, но не существует никакого другого способа более элегантный способ сделать это?