What is the Syntax to get Thymeleaf ${pageContext.request.contextPath}

Dunken picture Dunken · Jun 16, 2014 · Viewed 31.2k times · Source

I have searched hard for a syntax like the JSTL one ${pageContext.request.contextPath},

I did made a javascript code to change the action attribute on the form to call the edit method on the spring controller so, the problem is the below code dont work without calling the Context first like ${pageContext.request.contextPath}/edit.html

<script th:inline="javascript">
    function edit() {
        document.getElementById("user_form").action = "/edit.html";
    }
</script>

so what is the Syntax to call Thymeleaf context path?

Answer

geoand picture geoand · Jun 16, 2014

In Thymeleaf the equivalent of JSP's ${pageContext.request.contextPath}/edit.html would be @{/edit.html}

Check out this part of the Thymeleaf documentation for more details

In your case you would write :

<script th:inline="javascript">
    function edit() {
        var link = /*[[@{/edit.html}]]*/ 'test';
        document.getElementById("user_form").action = link;
    }
</script>

The /*[[ - ]]*/ syntax is used by Thymeleaf to evaluate variables used by Javascript, without breaking the script if that where to be statically loaded. Check out this part of the documentation for more details