J'utilise Thymeleaf Template Engine avec Spring Web MVC et je suis coincé lors de la création d'url à l'aide de l'url actuelle. Existe-t-il un moyen de se mettre à jour dans le fichier HTML Thymeleaf? Par exemple: supposons que mon URL actuelle dans la barre d'adresse de mon navigateur soit:
http://localhost:8080/project/web/category/mobiles
et maintenant je veux faire une URL comme celle-ci http://localhost:8080/project/web/category/mobiles/store/samsung
ou
http://localhost:8080/project/web/category/mobiles?min_price=10&max_price=100
.
Je vais donc le code ressemblera à ceci
<a th:with="currentUrl='http://localhost:8080/project/web/category/mobiles'"
th:href="@{__${currentUrl}__/__${store.name}__}">
Click to More Result
</a>
Ici, j'utilise la variable currentUrl
avec une URL codée en dur, donc je veux une solution pour la même chose. La valeur codée en dur ne fonctionnera pas à chaque fois car j'ai des catégories dynamiques.
J'ai essayé la même chose avec une URL relative mais cela ne fonctionne pas pour moi.
<a th:href="@{/store/__${store.name}__}">Click to More</a>
//will produce: http://localhost:8080/project/web/store/samsung
//I want: http://localhost:8080/project/web/category/mobiles/store/samsung
Veuillez jeter un coup d'œil et faites-moi savoir si je fais quelque chose de mal.
Oh, j'ai la solution pour ça. J'ai manqué le {#httpServletRequest.requestURI}
dans la documentation.
Voici la solution qui fonctionne pour moi:
<a th:href="@{__${#httpServletRequest.requestURI}__/store/__${store.name}__}">Click to More</a>
//Will produce: http://localhost:8080/project/web/category/mobiles/store/samsung
Vous pouvez obtenir l'URL actuelle à l'aide de deux '
citations. Exemple:
<a th:href="@{''(lang=de)}">Deutsch</a>
Notez que cela n'inclut malheureusement pas les paramètres d'URL existants.