È necessario stringa concatenate all'interno @ {}.
<form th:action="@{'/mycontroller/' + ${type}}">
@ {} viene utilizzato per la riscrittura degli URL. Parte della riscrittura degli URL sta tenendo traccia della sessione. URL di richiesta per la prima volta, il server app aggiunge all'url ;jsessionid=somehexvalue
e genera cookie con jsessionid. Quando il client invia un cookie durante la successiva richiesta, il server sa che il client supporta i cookie. Se il server conosce i cookie di supporto del client, il server non manterrà addind jsessionid nell'URL.
Il mio modo preferito è la sostituzione letterale con la sintassi della pipeline (|).
<form th:action="@{|/mycontroller/${type}|}">
percorso Thymeleaf sintassi variabile è
<form th:action="@{/mycontroller/{pathParam}(pathParam=${type}}">
Riferimento: Thymeleaf Standard URL Syntax
Questo non funziona per me. Per l'esempio precedente, otterrei '{user}' reso letteralmente nell'URL. Ad esempio, 'First' mi fornisce un collegamento di 'http: // host/users/{user.first}' con il testo 'Rick'. – Rick
@rick All'interno di '@ {...}' non hai specificato il valore del segnaposto '{user.first}'. Se il mio Thymeleaf è ancora corretto, avrai bisogno di '@ {/ users/{path} (path = $ {user.first})}'. –
Grazie, Sotirios, sembra che sia così. Vorrei davvero poter scrivere '$ {user.first}' (o qualsiasi altra cosa) nel percorso senza tutto il boilerplate. Non capisco davvero perché non supporta un uso così ovvio. – Rick