Вам нужно сцепить строки внутри @ {}.
<form th:action="@{'/mycontroller/' + ${type}}">
@ {} используется для перезаписи URL-адресов. Часть перезаписи URL-адресов отслеживает сеанс. Первый URL-адрес пользовательского запроса, сервер приложений добавляет URL-адрес ;jsessionid=somehexvalue
и создает cookie с jsessionid. Когда клиент отправляет cookie во время следующего сервера запросов, клиент поддерживает файлы cookie. Если сервер знает, что куки-файлы поддержки клиентов, сервер не будет содержать addind jsessionid в URL-адресе.
Мой предпочтительный способ - это буквальная подстановка синтаксисом конвейера (|).
<form th:action="@{|/mycontroller/${type}|}">
Thymeleaf путь переменной Синтаксис
<form th:action="@{/mycontroller/{pathParam}(pathParam=${type}}">
Ссылка: Thymeleaf Standard URL Syntax
Это не работает для меня. В приведенном выше примере я бы получил '{user}' визуализированный буквально в URL. Например, 'First' дает мне ссылку 'http: // host/users/{user.first}' с текстом 'Rick'. – Rick
@rick Внутри '@ {...}' вы не указали значение заполнителя '{user.first}'. Если мой Тимелеаф по-прежнему прав, вам понадобится '@ {/ users/{path} (путь = $ {user.first})}'. –
Спасибо, Сотириос, это похоже. Я уверен, что я мог бы просто написать '$ {user.first}' (или что-то еще) на пути без всего шаблона. Я действительно не понимаю, почему он не поддерживает такое очевидное использование. – Rick