Thymeleaf - meneruskan variabel ke fragmen
Sep 21 2020
Saya memiliki template berikut dengan fragmen di mana saya meneruskan variabel:
<div th:fragment="main">
<span>
<th:block th:include=" :: inner(${item})" /> </span> <a> <th:block th:include=" :: inner(${item})" />
</a>
</div>
<th:block th:fragment="inner(item)">
[[${item.name}]]
</th:block>
Jika saya mencoba membuatnya, saya mendapatkan kesalahan yang mengatakan:
Property or field 'name' cannot be found on null
Jika saya membuatnya seperti ini
<div th:fragment="main">
<span>
<th:block th:include=" :: inner(${item})" />
[[${item.name}]] </span> <a> <th:block th:include=" :: inner(${item})" />
</a>
</div>
Apa yang saya lakukan salah saat menugaskan variabel ke fragmen?
Jawaban
michal.jakubeczy Sep 21 2020 at 21:47
Menemukannya.
Alasan kesalahan adalah bahwa fragmen 'dalam' dirender selama perenderan bersama dengan fragmen utama. Begitu juga dengan inklusi jika dirender dengan sendirinya. Dan render terakhir ini merusaknya.
Solusi yang mungkin adalah:
- pindahkan fragmen dalam ke file lain
- tambahkan
th:if="false"ke fragmen 'batin' untuk menghindari rendering sendiri (penyertaan akan terus berfungsi).
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'