我正在开发Spring MVC项目,我需要将一个对象从我的Controller传递给JSP,然后我需要迭代该对象并在jsp页面的表中显示它们。
以下是我的班级,其中包含数据 -
public class DatacenterMachineMapping {
private String datacenter;
private List<MachineMetrics> metrics;
// 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
}
以下是我的Controller中的方法,我需要将对象传递给JSP,然后在JSP中迭代该对象以在表中显示数据 -
@RequestMapping(value = "testOperation", method = RequestMethod.GET)
public Map<String, String> testData() {
final Map<String, String> model = new LinkedHashMap<String, String>();
MachineMetrics metrics1 = new MachineMetrics();
metrics1.setAvg("10");
metrics1.setT2_95("100");
metrics1.setT2_99("200");
metrics1.setMachineName("machineA");
metrics1.setSyncs("100");
metrics1.setSyncsBehind("1000");
MachineMetrics metrics2 = new MachineMetrics();
metrics2.setAvg("20");
metrics2.setT2_95("200");
metrics2.setT2_99("300");
metrics2.setMachineName("machineB");
metrics2.setSyncs("200");
metrics2.setSyncsBehind("2000");
List<MachineMetrics> metrics = new LinkedList<MachineMetrics>();
metrics.add(metrics1);
metrics.add(metrics2);
DatacenterMachineMapping mappings = new DatacenterMachineMapping();
mappings.setColo("dc1");
mappings.setMetrics(metrics);
return model;
}
下面是我的JSP页面..而且我不确定如何在JSP页面中以这种方式使用上面的mappings
对象,以便我可以迭代它并在表中显示结果 - < / p>
<body>
<table>
<thead>
<tr>
<th>Machine Name</th>
<th>T2_95</th>
<th>T2_99</th>
<th>Syncs</th>
<th>Syncs Behind</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<!-- what to do here? -->
</tbody>
</table>
</body>
我的数据在Datacenter 1
-
Machine Name T2_95 T2_99 Syncs Syncs Behind Average
machineA 100 200 100 1000 10
machineB 200 300 200 2000 20
我需要使用JSTL吗?或者有更好的方法吗?
答案 0 :(得分:1)
使用
将JSTL库导入JSP页面 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这会将JSTL名称空间链接到c
。 JSTL将使forEach
标签可用于迭代您的集合。
确保您的对象遵循bean命名约定
<c:forEach items="${dc1.metrics}" var="m">
<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>