如何传递字符串列表

Lou*_*uth 5 java playframework-2.0

在Java模式下使用play framework 2.0,我想使用URL参数将字符串列表传递给Controller.

给定一个URL,例如:

http://localhost:9000/echo?messages=hello&messages=world
Run Code Online (Sandbox Code Playgroud)

我想调用我的Controller方法:

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

我的路线文件如下所示:

GET      /echo             controllers.Application.echo(messages: List[String])
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我得到错误声称List [String]没有QueryString绑定器.这对我来说似乎不对,因为这是以前版本中非常标准的功能.有人知道如何使用Java项目将字符串列表传递给控制器​​吗?

Jul*_*Foy 7

现在,您可以从查询字符串中检索它们:

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

更新:已添加列表绑定器,因此您只需编写以下内容:

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

确保您的路由定义如下所示:

GET   /echo      controllers.Application.echo(messages: java.util.List[String])
Run Code Online (Sandbox Code Playgroud)