I am using Thymeleaf Template Engine with Spring Web MVC and I am got stuck while creating url's with the help of current url. Is there any way to get current inside Thymeleaf HTML file? eg: Suppose my current url in my browser address bar is:
http://localhost:8080/project/web/category/mobiles
and now I want to make a url like this http://localhost:8080/project/web/category/mobiles/store/samsung
or
http://localhost:8080/project/web/category/mobiles?min_price=10&max_price=100
.
So I the code will look like this
<a th:with="currentUrl='http://localhost:8080/project/web/category/mobiles'" th:href="@{__${currentUrl}__/__${store.name}__}"> Click to More Result </a>
Here I am using currentUrl
variable with hardcoded url, So I want to some solution for the same. The hardcoded value will not work everytime because I have dynamic categories.
I tried the same with relative url but its not working for me.
<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
Please have a look and let me know if am I doing something wrong.
Thymeleaf offers a set of Spring integrations that allow you to use it as a fully-featured substitute for JSP in Spring MVC applications.
In Thymeleaf, these model attributes (or context variables in Thymeleaf jargon) can be accessed with the following syntax: ${attributeName} , where attributeName in our case is messages .
To achieve similar to if-else condition in Thymeleaf we can use th:switch attribute. Thymeleaf at the first step will evaluate ${condition} expression and if the value is true it will print p tag with TRUE text.
Oh I got the solution for this. I missed the {#httpServletRequest.requestURI}
in the documentation.
Here is the solution which is working for me:
<a th:href="@{__${#httpServletRequest.requestURI}__/store/__${store.name}__}">Click to More</a> //Will produce: http://localhost:8080/project/web/category/mobiles/store/samsung
You can get the current URL using two single '
quotes. Example:
<a th:href="@{''(lang=de)}">Deutsch</a>
Note that this unfortulately does not include existing URL parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With