如何显示List <map <string,object =“”>&gt;在HTML 5中使用百里香

时间:2015-06-12 06:21:29

标签: html5 list dictionary thymeleaf

我的应用是使用HTML5 + Thymeleaf 我从DB中获取了几行以显示为搜索结果。

PersonDAO.java

String sql = "SELECT P.PERSON_ID, P.PERSON_NAME, C.COMPANY_ID FROM PERSON P LEFT JOIN COMPANY C ON P.PERSON_ID = C.PERSON_ID WHERE P.PERSON_ID='1001'";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql );

输出:

[{PERSON_ID=1001, PERSON_NAME=JOHN, COMPANY_ID=10}, {PERSON_ID=1001, PERSON_NAME=JOHN, COMPANY_ID=20}, {PERSON_ID=1001, PERSON_NAME=JOHN, COMPANY_ID=30}, {PERSON_ID=1001, PERSON_NAME=JOHN, COMPANY_ID=40}]

我需要在表格中显示上面的值,如下所示: (HTML中的预期表格)

PERSON_ID   PERSON_NAME     COMPANY_ID
1001        JOHN            10
1001        JOHN            20
1001        JOHN            30
1001        JOHN            40

对于列表,我可以这样做:

<div id="resultstab" th:if="!${#lists.isEmpty(searchList)}">    
<tbody>
   <tr th:each="person : ${searchList}">
   <td class="tg bg" th:text="${person.person_id}"></td>
   </tr>
</tbody>
</div>

但是,我不知道如何显示List<Map<String, Object>>。 任何人都可以帮助这个。 感谢

2 个答案:

答案 0 :(得分:0)

简而言之

迭代地图时,iter变量的类别为java.util.Map.Entry。

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#using-theach

<小时/> 详细

<tbody>
   <tr th:each="person : ${searchList}">
      <td th:each="entry : ${person}" 
          th:text="${entry.value}"></td>
   </tr>
</tbody>

答案 1 :(得分:0)

你可以尝试这样的事情。它会起作用

<div th:each="map : ${modellist}">
    <div th:each="mapEntry : ${map}">
        <span th:text="${mapEntry.key}"></span> =
        <span th:text="${mapEntry.value}"></span>
    </div>
</div>