Как передать список строк
Использование play framework 2.0 в режиме Java, и я хочу передать список строк в контроллер с использованием параметров URL.
С учетом URL-адреса, например:
http://localhost:9000/echo?messages=hello&messages=world
Я хочу вызвать мой метод контроллера:
public static Result echo(List<String> messages){
return ok("Size: " + messages.size());
}
Мой файл маршрутов выглядит так:
GET /echo controllers.Application.echo(messages: List[String])
Но это не сработает. Я получаю ошибки, утверждая, что для List [String] нет связующего объекта QueryString. Мне это кажется неправильным, поскольку это была стандартная функциональность в предыдущей версии. Кто-нибудь знает, как я могу передать список строк контроллеру с помощью Java-проекта?
Ответы
Ответ 1
Теперь вы можете получить их из строки запроса:
public static Result echo(){
String[] messages = request().queryString().get("messages");
return ok("Size: " + messages.length);
}
Обновление: Добавлен список binder , поэтому вы можете просто написать следующее:
public static Result echo(List<String> messages) {
return ok("Size:" + messages.size());
}
Убедитесь, что ваше определение маршрута выглядит следующим образом:
GET /echo controllers.Application.echo(messages: java.util.List[String])