setting up a value for a variable name in thymeleaf
I am new to Thymeleaf and converting my Web page from JSP to Thymeleaf. I have a strut tag like this:
<c:set var="someVariable" value="${someValue}"/>
That variable can be used anywhere in JSP. Is there any such alternatives for this in Thymeleaf?
Solution 1:
You can use local variables.
Declare an HTML element with a th:with
attribute. For example
<div th:with="someVariable=${someValue}">
The documentation states
When
th:with
is processed, that[someVariable]
variable is created as a local variable and added to the variables map coming from the context, so that it is as available for evaluation as any other variables declared in the context from the beginning, but only within the bounds of the containing tag.
Solution 2:
Just a note, if you wish to assign more than one variable, separate them with a comma :
<div th:with="someVariable=${someValue},anotherVariable=${anotherValue}">
See the third example : Local Variable section of Thymeleaf documentation
Solution 3:
declare with
th:with="varName=${'str'}
ref with in src
th:src="@{${varName}}"
in more detail:
<head th:with="component =${'/static/component'}, bizJs = ${'/static/js/biz'}">
<span th:text="${component}"></span>
<script th:src="@{(${component})}"></script>
<script th:src="@{${bizJs} + '/static/js'}"></script>
</head>