Thymeleaf - टुकड़ों के लिए चर पास

Sep 21 2020

मेरे पास खंड के साथ टेम्पलेट है, जहां मैं चर पारित कर रहा हूं:

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

अगर मैं इसे रेंडर करने की कोशिश करता हूं तो मुझे एक त्रुटि मिलती है:

Property or field 'name' cannot be found on null

अगर मैं इसे इस तरह प्रस्तुत करता हूं

<div th:fragment="main">
    <span>
        <th:block th:include=" :: inner(${item})" />
        [[${item.name}]] </span> <a> <th:block th:include=" :: inner(${item})" />
    </a>
</div>

टुकड़ा करने के लिए चर असाइन करते समय मैं क्या गलत कर रहा हूं?

जवाब

michal.jakubeczy Sep 21 2020 at 21:47

ढ़ूँढ निकाला।

त्रुटि का कारण यह था कि मुख्य अंश के साथ रेंडर के दौरान 'इनर' टुकड़े का प्रतिपादन किया गया था। तो समावेश के साथ-साथ यदि इसका प्रतिपादन किया गया है। और इस अंतिम रेंडर ने इसे खराब कर दिया।

संभावित समाधान निम्नलिखित हैं:

  1. आंतरिक टुकड़े को दूसरी फ़ाइल में ले जाएं
  2. th:if="false"सेल्फ रेंडरिंग से बचने के लिए 'इनर' टुकड़े में जोड़ें (निष्कर्ष काम करना जारी रखेगा)।