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