我想生成一个这样的网址:
/photo?tags=tag1,tag2,tag3
路线文件:
GET /photo controllers.Photos.list(tags:Array[String] ?= "")
我在游戏控制台中遇到了这个错误:
未找到类型 Array[String] 的 QueryString 活页夹
实现这一目标的最佳方法是什么?
谢谢。
我想生成一个这样的网址:
/photo?tags=tag1,tag2,tag3
路线文件:
GET /photo controllers.Photos.list(tags:Array[String] ?= "")
我在游戏控制台中遇到了这个错误:
未找到类型 Array[String] 的 QueryString 活页夹
实现这一目标的最佳方法是什么?
谢谢。
当值在查询字符串中或发布具有相同名称的数据时,play 将绑定到数组/列表。
这似乎也有效:
This route: http://localhost/controller/{id}
这个网址:http://localhost/controller/1?id=2&id=3
将绑定到controller(int[] id)
where id -> {1, 2, 3}
发布 id=2&id=3 也将绑定到一个数组。
参考: https ://groups.google.com/forum/?fromgroups#!topic/play-framework/c5kB6wmcF8Q
使用列表而不是数组应该可以。
如果您使用的是 Java,它的工作方式如下:
GET /photo controllers.Photos.list(tags: java.util.List[String])
我认为你应该使用一个普通的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();
}
顺便说一句,如果您希望传递一个 Long 数组,则可以这样做:
GET /photo controllers.Photos.list(tags: java.util.List[java.lang.Long])
以控制器函数List<Long> tags
作为参数。