概要
Sprirng Boot + tymeleafで渡された変数値を表示するサンプル。
前提
表示するテンプレートにパラメータを渡しているコントローラ
sampleController.java
import org.springframework.ui.Model;
@GetMapping("/sample")
public String sample(Model model){
model.addAttribute("intVar1", 1);
model.addAttribute("strVar1", "Test");
model.addAttribute("strVar2", "Test2");
return "sample";
}
例
数値として変数展開
値が数値の場合は計算結果を表示する
sample.html
<p th:text="${intVar1}">
<p th:text="${intVar1} + ${intVar1}">
実行結果
1
2
文字として変数展開
文字列は連結して表示も可
sample.html
<p th:text="${strVar1}">
<p th:text="${strVar1} + ${strVar1}">
実行結果
Test
TestTest
変数名を動的に生成
変数を文字列として表示したり、変数の値を表示したり
sample.html
<!-- 文字列:strVarと, 数値:1を連結した文字列:strVar1をtmpVar変数に設定 -->
<div th:with="tmpVar='strVar' + 1">
<!-- tmpVarの設定値を単なる文字列として表示-->
<p th:text="${tmpVar}"></p>
<!-- tmpVarの設定値を、変数とみなしてその値を表示 -->
<p th:text="${__${tmpVar}__}"></p>
</div>
実行結果
strVar1
Test
変数名を動的に生成(ループを使う場合)
変数名に連番サフィックス(strVar1, strVar2, …, strVarn)を使っている場合にループで処理したい場合など。
sample.html
<div th:each="i : ${#numbers.sequecnce(1,2)}" th:with="tmpVar='strVar' + ${i}">
<p th:text="${__${tmpVar}__}"></p>
</div>
実行結果
Test
Test2