Вместо прямого использования RequestContextHolder
вы также можете использовать ServletUriComponentsBuilder
и его статические методы:
ServletUriComponentsBuilder.fromCurrentContextPath()
ServletUriComponentsBuilder.fromCurrentServletMapping()
ServletUriComponentsBuilder.fromCurrentRequestUri()
ServletUriComponentsBuilder.fromCurrentRequest()
Они используют RequestContextHolder
под капотом, но предоставляют дополнительную гибкость для создания новых URL-адресов с использованием возможностей UriComponentsBuilder
.
Пример:
ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentRequestUri();
builder.scheme("https");
builder.replaceQueryParam("someBoolean", false);
URI newUri = builder.build().toUri();