2017-01-10 43 views
0

foo.messageData是一個表格。 messageData包含name作爲字符串。

在thymeleaf HTML模板,我想打印messageData

東西的第一個元素的name屬性值一樣foo.messageData[0].name

<span th:text="foo.messageData[0].name"></span><span th:text="foo.messageData.get(0).name"></span>是行不通的。Thymeleaf:如何獲得列表的第一個元素而不迭代?

如何打印這些數據?在Thymeleaf中有沒有特別的語法?

據我所知,這個值可以通過使用迭代來th:each印刷 - 但我不希望這些迭代。

+0

你爲什麼不把第一個元素到模型中的春天控制器中的一個單獨的屬性,我也認爲這將使用戶界面更易於閱讀(除非你需要許多不同的集合的第一個元素) –

回答

2

Thymeleaf表達式是規劃環境地政司。在你的情況下,你可以像下面一樣使用它。

<span th:text="${foo.messageData[0].name}"></span> 
+0

這句法似乎沒有工作。顯示模板解析錯誤。 –

+0

適合我。你可以請檢查錯誤的詳細信息。 – abaghel

0

與Spring的Thymeleaf集成使用Spring Expression Language(SpEL)。

這意味着所有${..}表達式將通過使用SpEL發動機進行評估。 您可能會發現訪問列表元素here的所有細節。

因此,這(注意${..}):

<span th:text="${foo.messageData[0]}"></span> 

將在列表foo.messageData打印的第一個元素。

如果foo.messageData包含字符串元素是:

<span th:text="${foo.messageData[0].name}"></span> 

將打印什麼,因爲String -s沒有名稱屬性。

如果foo.messageData包含的文檔,我正上方,然後

<span th:text="${foo.messageData[0].name}"></span> 

鏈接將打印發明者的名字像Inventor類的實例。

+0

顯然我有一個語法錯誤,我使用「$ {..}」但錯過了最後的「 無論如何,感謝您的幫助!:-) 我覺得我應該刪除這個問題。 –

+0

也許確實是這樣一個很好的候選人刪除:-) –

相關問題