Search code examples
spring-mvcthymeleaf

Spring MVC: How do I get current url in Thymeleaf


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.


Solution

  • 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