web-dev-qa-db-ja.com

thymeleafフラグメントに変数を設定する方法は?

Thymeleafがビューをレンダリングするために作成されていることは理解していますが、Thymeleafフラグメントのリクエストスコープに変数を設定する方法があるかどうかを知りたいだけですか?

非常に大きな条件式があり、アプリケーション全体で何度も繰り返す必要があるため、メインレイアウトで変数を設定し、それを他のすべての子フラグメントで再利用できると非常に役立ちます。

Springインターセプターを使用してモデルに変数を設定することは知っていますが、したくありません。

お知らせ下さい。

ありがとう

プラッシュ

11
prashant2402

フラグメントテンプレートで、パラメーターを使用してフラグメントを定義します。

<div th:fragment=”myfragment(myvariable)”>
    <p th:text=”${myvariable}”></p>
</div>

レイアウトテンプレートに、その変数を指定したフラグメントを含めます。

<div th:include=”template :: myfragment(${variable})”></div>

次に、変数がフラグメントテンプレートに渡されます。

29
milhauz

フラグメントでのみ式の結果が必要な場合は、使用できます

th:with="var=${verylargeexpression}"

これにより、フラグメントを含め、定義したdom要素内のどこでも使用できるローカル変数が作成されます。

13
Martin Frey
<div th:include="'path/your/file/' + ${variable}"></div>

上記のコードでは、ファイルパスの作成に選択できる変数を使用できます

1
Davi Lago

Spring MVCをThymeleafと一緒に使用している場合は、thymeleafテンプレート内の任意のBeanにアクセスできるはずです。

グローバルテンプレートでこのような式を使用するだけです...

<span th:text="${beans.myBean.verylargeexpression}"></span>
0
jumlk