JSP:迭代List并获取每个项目(ForEach)

时间:2015-07-15 08:29:30

标签: java spring jsp spring-mvc

我很难用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;
    }
}

0 个答案:

没有答案