Sie benötigen concatenate Zeichenfolge innerhalb @ {}.
<form th:action="@{'/mycontroller/' + ${type}}">
@ {} wird zum Umschreiben von URLs verwendet. Ein Teil des URL-Neuschreibens verfolgt die Sitzung. Benutzeranfragen-URL zum ersten Mal, App-Server fügt URL ;jsessionid=somehexvalue
hinzu und generiert Cookie mit jsessionid. Wenn der Client einen Cookie während der nächsten Anfrage sendet, weiß der Server, dass der Client Cookies unterstützt. Wenn der Server die Cookies für die Clientunterstützung kennt, behält der Server die URL addind jsessionid nicht bei.
Meine bevorzugte Art ist literale Substitution mit der Pipeline-Syntax (|).
<form th:action="@{|/mycontroller/${type}|}">
Thymeleaf Pfadvariablen Syntax ist
<form th:action="@{/mycontroller/{pathParam}(pathParam=${type}}">
Referenz: Thymeleaf Standard URL Syntax
Dies funktioniert nicht für mich. Für das obige Beispiel würde '{user}' wordentlich in die URL übernommen. Zum Beispiel, 'First' gibt mir einen Link von 'http: // host/users/{user.first}' mit dem Text 'Rick'. – Rick
@rick Innerhalb des '@ {...}' haben Sie den Wert des Platzhalters '{user.first}' nicht angegeben. Wenn mein Thymoleaf noch korrekt ist, benötigen Sie '@ {/ users/{path} (Pfad = $ {user.first})}'. –
Danke, Sotirios, das scheint es zu sein. Ich wünschte mir, ich könnte einfach '$ {user.first}' (oder was auch immer) in den Pfad schreiben, ohne den ganzen Text. Ich verstehe wirklich nicht, warum es solche offensichtliche Verwendung nicht unterstützt. – Rick