How to set up a value for a variable name?

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?

Upvotes: 65

Views: 134421

Answers (3)

Vinci Da
Vinci Da

Reputation: 291

  1. declare with th:with="varName=${'str'}

  2. ref with in src th:src="@{${varName}}"

  3. 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>

Upvotes: 28

Alexandre Roger
Alexandre Roger

Reputation: 1041

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

Upvotes: 63

Sotirios Delimanolis
Sotirios Delimanolis

Reputation: 280179

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.

Upvotes: 130

Related Questions