Vaadin Flow: How to get current URI

4.6k Views Asked by At

I need to get the current servers name an all the other information stored in the URI. In Vaadin 8 it was accessible thru the Page by calling something like this:

URI uri = Page.getCurrent().getLocation();

In Flow the Page does not contain such information: enter image description here

An neither does the Router afaik.


How do I get the URI?

Thank you in advance.

2

There are 2 best solutions below

0
Gerrit Sedlaczek On BEST ANSWER

Update Feb 2021

Since Vaadin 19 there is a new Page method called fetchCurrentURL which will actively poll the current url form the frontend.

see: commit


Old and potentially problematic workaround

The URI can be retrieved using this:

VaadinServletRequest req = (VaadinServletRequest) VaadinService.getCurrentRequest();
StringBuffer uriString = req.getRequestURL();
URI uri = new URI(uriString.toString());
1
Leif Åstrand On

There is no direct way of doing this, but a feature request is open for this case: https://github.com/vaadin/flow/issues/1897.