Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vaadin Flow: How to get current URI

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.

like image 434
Gerrit Sedlaczek Avatar asked Mar 05 '23 14:03

Gerrit Sedlaczek


2 Answers

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 an 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());
like image 163
Gerrit Sedlaczek Avatar answered Mar 09 '23 19:03

Gerrit Sedlaczek


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

like image 41
Leif Åstrand Avatar answered Mar 09 '23 19:03

Leif Åstrand