Documentation versions (currently viewingVaadin 24)

Query Parameters

Pass parameters to a given route in the form of name-value pairs.

You can retrieve any query parameters contained in a URL; for example, ?name1=value1&name2=value2. Route parameters is the easiest way to pass extra information to a given route, and it should work for most common use cases. It’s, therefore, recommended to use query templates only if your use case isn’t achievable using route parameters.

Use the getQueryParameters() method of a Location instance to access query parameters. You can retrieve the Location class through the BeforeEnterEvent parameter of the BeforeEnterObserver::beforeEnter() method or the BeforeEvent parameter of the HasUrlParameter::setParameter() method.

A Location object represents a relative URL made up of path segments and query parameters, but without the host name; for example, new Location("book/search?keyword=Vaadin").

Example: Retrieving query parameters from a BeforeEvent.

public void setParameter(BeforeEvent event,
        @OptionalParameter String parameter) {

    Location location = event.getLocation();
    QueryParameters queryParameters = location.getQueryParameters();

    Map<String, List<String>> parametersMap = queryParameters
getQueryParameters() supports multiple values associated with the same key; for example, results in the corresponding map {"genre" : ["fiction", "classic"], "restrictions": ["16+"]}}.