如何遍历百里香的另一个列表中的列表?

时间:2015-02-24 06:09:20

标签: html spring-mvc thymeleaf

我是百里香的新人。我被困在一个我需要遍历另一个列表中的字符串列表的地方。例如,我有一个像这样的json:

{
        "_id" : ObjectId("54e1865423asgj086"),
        "Name" : "Carbon Utility",
        "Modified In " : "DEC 5th",
        "Imported" : "N",
        "Classification" : "Functional SW delivery",
        "Type Designation" : "Heavy Use",
        "StateList" : [
                {
                        "name" : "Create",
                        "currentStatus" : "False",
                        "stateDuration" : "336264        "
                },
                {
                        "name" : "Implement",
                        "currentStatus" : "False",
                        "stateDuration" : "1393827        "
                },
                {
                        "name" : "RampUp",
                        "currentStatus" : "False",
                        "stateDuration" : "34        "
                },
               ]
               }

在我的控制器中,我将其添加到对象中。

@RequestMapping(value = "/Search1", method = RequestMethod.GET)
    public String showEntity( @RequestParam("type") String typeNameid,Model model,HttpSession session) {
        ------ my other stuffs--------  
        ---- here i'm getting data from other html and spliting to add to model----
        model.addAttribute("resultSourceDbObject",migrationSourceDataBean.getResultSourceDbObject());

        return "wipdm/Display";
    }

现在,在我的html页面中。我能够打印id,名称和类型desgination。但我陷入了遍历州名单的困境。对于每个州列表,我必须在表中创建一个单独的子文件夹,并需要显示名称,状态和持续时间。我试过这个但没有工作。

<table id="example-advanced" class="table table-striped table-bordered table-hover" style=" font-size:1.1em;">
        <thead class="dark-border-bottom">
            <tr>
                <th style="text-align:center"> Key</th>
                <th style="text-align:center">Values</th>
            </tr>
        </thead>
        <tbody>
            <tr data-tt-id='1'><td><span class="file">&nbsp;&nbsp;Type</span></td><td><span th:text="${resultSourceDbObject.getString('Type Designation')}"></span>  </td></tr>
            <tr data-tt-id='1'><td><span class="file">&nbsp;&nbsp;Name</span></td><td><span th:text="${resultSourceDbObject.getString('Name')}"></span> </td></tr>
            <tr data-tt-id='1'><td><span class="file">&nbsp;&nbsp;id</span></td><td><span th:text="${resultSourceDbObject.getString('_id')}"></span> </td></tr>
            <tr data-tt-id='2'><td><span class='folder'>Statelist</span></td><td></td></tr>
              <tr data-tt-id='2-1' data-tt-parent-id='2'  th:each="relresult : ${resultSourceDbObject.getString('StateList')}"><td><span class='folder' th:text="Relationship" >Relationship</span></td><td>Folder</td></tr>
              <tr data-tt-id='2-1-1' data-tt-parent-id='2-1'><td><span class='file' >name</span></td><td th:text="${relresult.getString('name')}">Release</td></tr>
              <tr data-tt-id='2-1-2' data-tt-parent-id='2-1'><td><span class='file'>currentstatus</span></td><td th:text="${relresult.getString('currentStatus')}">132456424</td></tr>
              <tr data-tt-id='2-1-3' data-tt-parent-id='2-1'><td><span class='file'>Stateduration</span></td><td th:text="${relresult.getString('stateDuration')}">16572464</td></tr>
        </tbody>
</table>

有人可以告诉我哪里出错了以及如何实现这一目标。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定究竟有哪种类型的对象migrationSourceDataBean.getResultSourceDbObject()正在返回,但resultSourceDbObject.getString('StateList')无法返回您需要的内容。 (我想它只是给你JSON?)

假设它与JSONObject类似,你应该调用getJSONArray()(或类似的),它会为你提供嵌套列表,然后你可以迭代它。