Текущее состояние :
https://localhost:8443/обходной путь/?query=dasda&atn=s&filterSoftwareType=ANY.....
Желаемое состояние : https://localhost:8443/обходной путь/?д=dasda&atn=s&фст=ЛЮБОЙ.....
Сократите URL-адрес, используя q вместо запроса и fst вместо filterSoftwareType.
Мой тимелеаф html выглядит так, краткий пример:
<form action = "#" class = "card card-sm rounded"
method = "get"
th:action = "@{${T(com.bisciak.workaround.util.Utils).MAPPING_INDEX}}" th:object = "${search}">
<div class = "col">
<input class = "form-control form-control-lg form-control-borderless"
placeholder = "Search here"
style = "padding-left: 1rem"
th:field = "${search.query}" type = "search"/>
</div> etc...
Контроллер :
@GetMapping(value = Utils.MAPPING_INDEX, params = "atn=s")
public ModelAndView indexActionSearch(@ModelAttribute(name = "s") Optional<Search> search .....
Объект поиска имеет такие свойства, как запрос и т. д., но я точно не хочу их переименовывать! Было бы просто ужасно именовать код, я хочу использовать только короткие версии для URL.
Кто-нибудь знает, как это сделать? Я попробовал атрибут имени на входе, но это не помогло :/.
Я также хочу сохранить материал в форме, чтобы URL-адрес создавался автоматически. Я также хочу сохранить это как получение, а не сообщение, чтобы пользователь мог легко поделиться этой ссылкой с помощью копирования и т. д. Из строки URL. С постом он этого не увидит.




Атрибут th:field предназначен для простого создания формы из объекта Java, а также для отправки полей обратно с использованием тех же имен, чтобы значения можно было автоматически назначать обратно объекту Java того же типа на сервере.
Если вам нужны другие имена, значит, вы используете его не по назначению, поэтому прекратите его использовать.
Если вы посмотрите документацию, то есть главу 7.2 Входы, вы увидите, что делает th:fields:
Let’s see now how to add an input to our form:
<input type = "text" th:field = "*{datePlanted}" />... In this case (
input[type=text]), the above line of code is similar to:<input type = "text" id = "datePlanted" name = "datePlanted" th:value = "*{datePlanted}" />
Итак, измените свой код, чтобы сделать это:
<form ... th:object = "${search}">
<input ... name = "q" th:value = "*{query}"/>
Нужно ли вам тоже id = "q" решать вам.
Обратите внимание, что если вы используете th:value = "${search.query}", то th:object = "${search}" не нужно.
Черт, все работает именно так, как ты сказал. Спасибо, это решает мою проблему!