2
我正在尋找一種方法來動態地將html元素添加到使用Thymeleaf的其他html元素。Thymeleaf:追加到html元素/避免重複迭代
考慮以下幾點:
<ol class="ol1" />
<ol class="ol2" />
<ol class="ol3" />
<iterate th:each="model">
<!-- ol1.append(model.name) -->
<!-- ol2.append(model.type) -->
<!-- ol3.append(model.something) -->
</iterate>
我知道,一個可能的解決方案有3個迴路,一個套在每一個<ol>
標籤,像這樣:
<ol class="ol1">
<iterate th:each="model">
model.name
</iterate>
</ol>
<ol class="ol2">
<iterate th:each="model">
model.type
</iterate>
</ol>
<ol class="ol3">
<iterate th:each="model">
model.something
</iterate>
</ol>
這上面解決方案我的喜好太低效了。
那麼,Thymeleaf是否提供了在這種情況下只執行一次迭代的功能?
您對其他方法的研究包括擴展Thymeleaf核心API以允許可以調用自定義Java函數的自定義方言嗎?我還沒有找到辦法做到這一點,但我覺得應該有可能。 –
您可以使用模板來完成此操作。參見http://www.thymeleaf.org/doc/tutorials/2.1/extendingthymeleaf.html#scenario-3-creating-your-own-template-system。我沒有與他們的經驗,所以我不能進一步協助。目前還不清楚你想在這裏消除什麼樣的「低效率」。我認爲這是開發工作,但是,看到你有興趣投入這項工作的努力,那可能不是你的目標。我相信任何獲得的處理效率都可以忽略不計。 – chrsalln
另外,請注意,Thymeleaf 3使用新的方言/處理器系統,因此任何自定義作品都可能需要遷移,假設您將在發佈時進行升級。見https://github.com/thymeleaf/thymeleaf/issues/401 – chrsalln