2013-09-24 62 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)