Trzeba złączyć ciąg wewnątrz @ {}.
<form th:action="@{'/mycontroller/' + ${type}}">
@ {} służy do przepisywania adresów URL. Częścią przepisywania adresów URL jest śledzenie sesji. Po raz pierwszy URL żądania użytkownika, serwer aplikacji dodaje do adresu url ;jsessionid=somehexvalue
i generuje plik cookie z jsessionid. Gdy klient wysyła cookie podczas następnego żądania, serwer wie, że klient obsługuje pliki cookie. Jeśli serwer wie, że pliki cookie obsługujące klienta, serwer nie zachowa addsess jsessionid w adresie URL.
Moim preferowanym sposobem jest dosłowne podstawianie za pomocą składni potoku (|).
składnia zmienna
<form th:action="@{|/mycontroller/${type}|}">
Thymeleaf ścieżka jest
<form th:action="@{/mycontroller/{pathParam}(pathParam=${type}}">
referencyjny: Thymeleaf Standard URL Syntax
To nie działa dla mnie. W powyższym przykładzie otrzymam słowo "{user}" dosłownie w adresie URL. Na przykład 'First' daje mi łącze do http: // host/users/{user.first} 'z tekstem' Rick'. – Rick
@rick Wewnątrz '@ {...}' nie określiłeś wartości symbolu zastępczego '{user.first}'. Jeśli mój Thymeleaf nadal jest poprawny, potrzebujesz '@ {/ users/{path} (path = $ {user.first})}'. –
Dzięki, Sotirios, to wydaje się być. Na pewno chciałbym napisać '$ {user.first}' (lub cokolwiek innego) na ścieżce bez całej tablicy. Naprawdę nie rozumiem, dlaczego nie obsługuje tak oczywistego użycia. – Rick