I want to generate an url like this:
/photo?tags=tag1,tag2,tag3
routes file:
GET /photo controllers.Photos.list
I think that you should use a common String
and then take care about converting it to an Array
in your controller
routes:
GET /photo controllers.Photos.list(tags:String ?= "")
in Java:
public static Result list (String tags){
String[] tagsArray = tags.split(",");
// do something with tagsArray
return ok();
}
As an aside, if you wish to pass an array of Longs, this works:
GET /photo controllers.Photos.list(tags: java.util.List[java.lang.Long])
with the controller function taking List<Long> tags
as an argument.
play will bind to array's/lists when the values are in the query string or post data with the same name.
this also seems to work:
This route: http://localhost/controller/{id}
This url: http://localhost/controller/1?id=2&id=3
Will bind to controller(int[] id)
where id -> {1, 2, 3}
posting id=2&id=3 will also bind to an array.
reference: https://groups.google.com/forum/?fromgroups#!topic/play-framework/c5kB6wmcF8Q
Using a list instead of an array should work.
If you are using Java, it works like this:
GET /photo controllers.Photos.list(tags: java.util.List[String])