玩框架2:使用数组[字符串]在路线(Play framework 2: Use Array[Stri

2019-07-30 04:54发布

我想产生这样的网址:

/照片=标签TAG1,TAG2,TAG3

routes文件:

GET     /photo  controllers.Photos.list(tags:Array[String] ?= "")

我在游戏控制台这样的错误:

没有查询字符串粘合剂找到类型数组[字符串]

什么是实现这一目标的最佳途径?

谢谢。

Answer 1:

我认为你应该使用一个共同的String ,然后大约需要将其转换为照顾Array中的controller

路线:

GET     /photo  controllers.Photos.list(tags:String ?= "")

在Java中:

public static Result list (String tags){
    String[] tagsArray = tags.split(",");
    // do something with tagsArray
    return ok();
}


Answer 2:

发挥将结合到阵列的/列表,当值在查询字符串或具有相同名称的POST数据。

这也似乎工作:

This route: http://localhost/controller/{id} 

此URL: http://localhost/controller/1?id=2&id=3

将结合到controller(int[] id)其中id - > {1,2,3}

发布ID = 2&ID = 3也将结合到阵列。

参考: https://groups.google.com/forum/?fromgroups#!topic/play-framework/c5kB6wmcF8Q



Answer 3:

使用列表,而不是一个数组的应该工作。

如果您使用的是Java,它的工作原理是这样的:

GET     /photo  controllers.Photos.list(tags: java.util.List[String])


Answer 4:

顺便说一句,如果你想传递的long数组,这个工程:

GET /photo controllers.Photos.list(tags: java.util.List[java.lang.Long])

与服用控制器功能List<Long> tags作为参数。



文章来源: Play framework 2: Use Array[String] in route