I'm very new to java play framework. I've set up all the normal routes like /something/:somthingValue and all the others. Now I want to create route the accepts query parameters like
/something?x=10&y=20&z=30
Here I want to get all the params after "?" as key==>value pair.
You can wire in your query parameters into the routes file:
http://www.playframework.com/documentation/2.0.4/JavaRouting in section "Parameters with default values"
Or you can ask for them in your Action:
public class Application extends Controller {
    public static Result index() {
        final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet();
        for (Map.Entry<String,String[]> entry : entries) {
            final String key = entry.getKey();
            final String value = Arrays.toString(entry.getValue());
            Logger.debug(key + " " + value);
        }
        Logger.debug(request().getQueryString("a"));
        Logger.debug(request().getQueryString("b"));
        Logger.debug(request().getQueryString("c"));
        return ok(index.render("Your new application is ready."));
    }
}
For example the http://localhost:9000/?a=1&b=2&c=3&c=4 prints on the console:
[debug] application - a [1]
[debug] application - b [2]
[debug] application - c [3, 4]
[debug] application - 1
[debug] application - 2
[debug] application - 3
Note that c is two times in the url.
In Play 2.5.x, it is made directly in conf/routes, where one can put default values:
# Pagination links, like /clients?page=3
GET   /clients              controllers.Clients.list(page: Int ?= 1)
In your case (when using strings)
GET   /something            controllers.Somethings.show(x ?= "0", y ?= "0", z ?= "0")
When using strong typing:
GET   /something            controllers.Somethings.show(x: Int ?= 0, y: Int ?= 0, z: Int ?= 0)
See: https://www.playframework.com/documentation/2.5.x/JavaRouting#Parameters-with-default-values for a longer explanation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With