Как передать список строк - PullRequest
5 голосов
/ 16 марта 2012

Использование 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 Ответ

7 голосов
/ 17 марта 2012

На данный момент вы можете получить их из строки запроса:

public static Result echo(){
    String[] messages = request().queryString().get("messages");
    return ok("Size: " + messages.length);
}

Обновление: Добавлено связыватель списка , поэтому вы можете просто написать следующее:

public static Result echo(List<String> messages) {
  return ok("Size:" + messages.size());
}

Убедитесь, что определение вашего маршрута выглядит следующим образом:

GET   /echo      controllers.Application.echo(messages: java.util.List[String])
...