我想產生這樣一個網址:播放框架2:使用數組[字符串]在路線
/照片標籤=標籤1,標籤2,標籤3
路線文件:
GET /photo controllers.Photos.list(tags:Array[String] ?= "")
我得到這個錯誤在場上控制檯:
無QueryString綁定找到類型爲Array [String]
實現此目的的最佳方法是什麼?
謝謝。
我想產生這樣一個網址:播放框架2:使用數組[字符串]在路線
/照片標籤=標籤1,標籤2,標籤3
路線文件:
GET /photo controllers.Photos.list(tags:Array[String] ?= "")
我得到這個錯誤在場上控制檯:
無QueryString綁定找到類型爲Array [String]
實現此目的的最佳方法是什麼?
謝謝。
我認爲你應該使用一個共同的String
再取大約在controller
途徑將其轉換爲Array
護理:
GET /photo controllers.Photos.list(tags:String ?= "")
在Java中:
public static Result list (String tags){
String[] tagsArray = tags.split(",");
// do something with tagsArray
return ok();
}
戲將綁定到數組的/列表中的值在查詢 字符串或發佈具有相同名稱的數據。
這也似乎工作:
This route: http://localhost/controller/{id}
這個網址: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
使用列表,而不是一個數組應該工作。
如果您使用的是Java,它的工作原理是這樣的:
GET /photo controllers.Photos.list(tags: java.util.List[String])
我已經搜索了幾個小時! 事實證明,你不能只使用List [String]。它會默認使用scala類型! 將出現以下異常! 類型不匹配; found:List [String](in scala.collection.immutable) 必需:List [_](在java.util中) 使用完整的包名是正確的方法 –
順便說一句,如果你想傳遞的long數組,這個工程:
GET /photo controllers.Photos.list(tags: java.util.List[java.lang.Long])
與控制器功能以List<Long> tags
作爲參數。
正確的方式做查詢參數(無論框架)從我理解的實際上是這樣的/ photo?tags = tag1&tags = tag2&tags = tag3 ...這有點冗長,但規範允許像這樣的重複 –