我很难用jsp迭代List。我用速度做了好几次,但我不知道怎么能用它来使用jsp。
这是我试图开始工作的一个简单示例:
@RequestMapping("/bye")
public ModelAndView byeWorld() {
String message = "Goodbye World, Spring 4.1.2!";
List<Map<String, Object>> data = dataProvider.getVorgaengeGesamtByArkNr();
model.put("table", data);
model.put("columnNames", utils.getColumnNames(data));
return new ModelAndView("test", model);
}
utils.getColoumnNames
会返回一个列表。
这是.jsp中的lopp:
<c:forEach var="entry" items="${columnNames}">
<tr>
entry
</tr>
</c:forEach>
响应如下:
<c:forEach var="entry" items="[ARKNR_ABTEILUNG, LIEFERANT_ID, LIEFERANT_NAME, RECHNUNGS_NR, RECHNUNGS_DATUM, RECHNUNGS_EINGANG, STATUS_ID, STATUS_NAME_DE, RECHNUNGS_BETRAG_BRUTTO, RECHNUNGS_BETRAG_WAEHRUNG, SKONTO, WEITERBERECHNUNG, ARCHIV_ID, PROZESS_ID, AKTUELLER_BENUTZER, AKTUELLER_BENUTZER_ID, RECHNUNG_ID, KV_ID, ARKNR, DEPARTMENT_ID, FIBU_NAME, DBRD_ID]">
<tr>
entry
</tr>
</c:forEach>
所以列表只是替换${columnNames}
,而不是完全循环它。
@SuppressWarnings("unchecked")
public static List<String> getColumnNames(List list) {
if (list.size() > 0) {
Map map = (Map)list.get(0);
List<String> columnNames = new ArrayList<String>();
for (Object entry : map.keySet())
{
logger.debugT(entry.toString());
columnNames.add(entry.toString());
}
return columnNames;
} else {
return null;
}
}