Documentation

Documentation versions (currently viewingVaadin 23)
New Acceleration Kits: Kubernetes Kit and Azure Cloud Kit. Read the blog post.

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.

Tip
Consider using route parameters
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.

Note
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.

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

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

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

45BF12F9-3633-4DC1-BA6A-E80122BE0D2C