I would like to extract path variables and query parameters from a URL using existing Spring features. I have a path format string which is valid for an MVC @RequestMapping
or UriComponentsBuilder
. I also have an actual path. I would like to extract path variables from that path.
For example.
String format = "location/{state}/{city}";
String actualUrl = "location/washington/seattle";
TheThingImLookingFor parser = new TheThingImLookingFor(format);
Map<String, String> variables = parser.extractPathVariables(actualUrl);
assertThat(variables.get("state", is("washington"));
assertThat(variables.get("city", is("seattle"));
It is something like the inverse of UriComponentsBuilder
, which from my reading of the Javadocs does not have any parsing features.
Here it goes:
String format = "location/{state}/{city}";
String actualUrl = "location/washington/seattle";
AntPathMatcher pathMatcher = new AntPathMatcher();
Map<String, String> variables = pathMatcher.extractUriTemplateVariables(format, actualUrl);
assertThat(variables.get("state"), is("washington"));
assertThat(variables.get("city"), is("seattle"));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With