В пути URL пробелы заменяются на %20
( RFC3986 ), а параметры запроса URL следуют за application/x-www-form-urlencoded
, который заменяет пробелы на +
.
Если вам нужно закодировать параметр строки запроса, вы можете использовать java.net.URLEncoder
.
Но так как вы используете @PathVariable
, ваши параметры являются частью пути, поэтому они должны кодироваться с пробелами, замененными на %20
. Spring предоставляет UriUtils.encodePath
для этой задачи.
Например, для построения запроса к вашему /post/{id}/{title}
отображению:
Long id = 1L;
String title = "My title";
String path = "/post/" + id + "/" + UriUtils.encodePathSegment(title, "UTF-8");
В вашем методе postView
вам не нужно сделать любое декодирование, как Spring уже делает.