Java 如何使用JSTL在字符串映射和对象列表中迭代列表?
我正在从事SpringMVC项目,在该项目中,我需要将一个对象从我的控制器传递到JSP,然后我需要迭代该对象,并在JSP页面的表中显示它们 以下是我的班级,其中包含数据-Java 如何使用JSTL在字符串映射和对象列表中迭代列表?,java,spring,jsp,spring-mvc,jstl,Java,Spring,Jsp,Spring Mvc,Jstl,我正在从事SpringMVC项目,在该项目中,我需要将一个对象从我的控制器传递到JSP,然后我需要迭代该对象,并在JSP页面的表中显示它们 以下是我的班级,其中包含数据- public class DatacenterMachineMapping { private Map<String, List<MachineMetrics>> datacenterMachines; // getters and setters } public class M
public class DatacenterMachineMapping {
private Map<String, List<MachineMetrics>> datacenterMachines;
// getters and setters
}
public class MachineMetrics {
private String machineName;
private String t2_95;
private String t2_99;
private String syncs;
private String syncsBehind;
private String average;
// getters and setters
}
我曾尝试使用如上所示的JSTL,并尝试在从Controller传递到JSP的映射中迭代列表
,但不知怎的,它给了我一个异常,如-
'${testing.value}' Property 'value' not found
在对映射中的列表进行迭代后,Datacenter 1
的表中,我的数据应该如下所示-
Machine Name T2_95 T2_99 Syncs Syncs Behind Average
machineA 100 200 100 1000 10
machineB 200 300 200 2000 20
我在这里做错什么了吗
我正在跟进我的上一个问题。在这个问题中,响应对象是不同的,因为我在这里有字符串和列表的映射。我认为这应该可以工作
<c:set var="entry" value="${testing.datacenterMachines}"></c:set>
<c:forEachn var="m" items="${entry.value}">
<tr>
<td>${m.machineName}</td>
<td>${m.t2_95}</td>
<td>${m.t2_99}</td>
<td>${m.syncs}</td>
<td>${m.syncsBehind}</td>
<td>${m.average}</td>
</tr>
</c:forEach>
${m.machineName}
${m.t2_95}
${m.t2_99}
${m.syncs}
${m.syncsBehind}
${m.average}
看看这个问题——几乎是类似的问题@拉维库马尔:我已经看过了,也试过了,但对我一点用都没有。。我肯定是做错了什么事。。如果可能的话,您能提供帮助吗?这是我在尝试您的建议后得到的错误属性限定名在元素中必须是唯一的。你知道为什么会这样吗?对不起,这是我的错,应该是我的错,而我也更新了答案。问题是我添加了两次var=“m”属性。一个简单的问题是,为什么要使用c:set
而不是c:forEach
?给我一个包含字符串作为键和列表作为值的映射,现在我得到了映射值,它是列表并在其中迭代。我想移除,然后也会这样做。
Machine Name T2_95 T2_99 Syncs Syncs Behind Average
machineA 100 200 100 1000 10
machineB 200 300 200 2000 20
<c:set var="entry" value="${testing.datacenterMachines}"></c:set>
<c:forEachn var="m" items="${entry.value}">
<tr>
<td>${m.machineName}</td>
<td>${m.t2_95}</td>
<td>${m.t2_99}</td>
<td>${m.syncs}</td>
<td>${m.syncsBehind}</td>
<td>${m.average}</td>
</tr>
</c:forEach>