2013-09-24 42 views
2

我已經創建了一個地圖
Map<String, Map<Integer,String>> 在DTO和使用thymeleaf如下訪問它在HTML:如何在百里香中使用嵌套地圖?

<div class="popupui" th:each="lang,st : ${session.languages}" >       
< label th:text="#{'language.label.' + ${lang.languageName} }" >English < /label> 
<input type="text" 
    th:field="*{languageMap['answerAlternative'][${st.count}]}" 
    th:id="'name-' + ${lang.languageId}" class="languageId"/><a 
    th:class="'flag-' + ${lang.languageName}" href="#"></a> 
</div> 

甲processingException在th:field="*{languageMap['answerAlternative'][${st.count}]}"

來臨了我還測試了上述第:場與:

<input type="text" 
th:field="*{languageMap[ __${'answerAlternative'}__][__${st.count}__]}"/> 

回答

3

按照Thymeleaf文檔,

變量表達式不僅可以寫成$ {...}表達式,而且在* {...}的。

雖然有一個重要的區別:星號語法評估所選對象上的表達式而不是整個上下文變量映射。

你也許錯過了選擇th:object="yourDTO"上一個div這是有問題的「popupui」 div的父母爲你能夠使用*{...}

此外,如果你打算顯示來自值「語言地圖」你不應該,而使用

th:value="*{languageMap['answerAlternative'][st.count]}"

在任何情況下,有選擇如上然後如果你下面應該工作

th:field="*{languageMap['answerAlternative'][st.count]}"

Thymeleaf參考:

4.3 Expressions on selections (asterisk syntax)