web-dev-qa-db-fra.com

mise en place d'une valeur pour un nom de variable dans thymeleaf

Je suis nouveau sur thymeleaf et je suis en train de convertir une page Web de jsp en thymeleaf. J'ai un tag comme ça

<c:set var="someVariable" value="${someValue}"/>

que la variable peut être utilisée n’importe où dans jsp. Existe-t-il de telles alternatives dans Thymeleaf?

Vous pouvez utiliser variables locales .

Déclarer un élément HTML avec un th:with attribut. Par exemple

<div th:with="someVariable=${someValue}">

La documentation indique

Quand th:with est traité, que [someVariable] variable est créée en tant que variable locale et ajoutée à la mappe de variables provenant du contexte, de sorte qu’elle soit aussi disponible pour évaluation que toute autre variable déclarée depuis le début dans le contexte, , mais uniquement dans les limites de la balise contenant.

83

Juste une note, si vous souhaitez affecter plusieurs variables, séparez-les par une virgule:

<div th:with="someVariable=${someValue},anotherVariable=${anotherValue}">

Voir le troisième exemple: section Variable locale de la documentation Thymeleaf

35
Alexandre Roger
  1. déclarer avec th:with="varName=${'str'}

  2. ref avec dans src th:src="@{${varName}}"

  3. plus en détail:

<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>
9
Vinci Da