JSP / JSTL解析ArrayList,它是传递对象的属性

时间:2011-11-14 07:06:36

标签: jsp spring-mvc jstl

我正试图解决一个棘手的JSTL问题,希望能得到一些帮助......

我使用ModelAndView将一个表对象从Spring MVC控制器传递给JSP,表对象有一个Row对象的ArrayList,每个对象都有一个Field对象的ArrayList。

我在控制器中填充Table对象以在jsp页面上显示,我试图找出如何解析Arraylists以使用JSTL生成html表。

所以作为一个起点,看一下Table对象......

使用Spring 3.0 MVC

型号:

public class Table {

private String id;
private ArrayList<Row> rows;

public String getId() {
    return id;
}

public ArrayList<Row> getRows() {
    return rows;
}

public void setRows(ArrayList<Row> rows) {
    this.rows = rows;
}

控制器:

Table table = new Table();
ArrayList<Row> rows = new ArrayList<Row>();
ArrayList<Field> fields = new ArrayList<Field>();

fields.add(new Field("0","test0"));
fields.add(new Field("1","test1"));
fields.add(new Field("2","test2"));

Row row = new Row();
row.setPKValue("testPK");
row.setFields(fields);
rows.add(row);

table.setRows(rows);
table.setId("test");

ModelAndView mav = new ModelAndView();
mav.addObject("table",table);
mav.setViewName("healthcenter/report");

return mav;

JSP文件:

<c:forEach var="row" items="${table.rows}">
${row.PKValue}
</c:forEach>

这不会产生任何输出,我期待输出行PKValue属性,不确定问题出在哪里,任何见解都会很棒!

1 个答案:

答案 0 :(得分:1)

假设Row上的方法是getPKValue,那么您需要在JSP中将其称为pKValue,而不是PKValue,即

${row.pKValue}

这是一个糟糕的名称,但它看起来很混乱。我建议将它重命名为更传统的东西,例如getId(即${row.id})或getKey(即${row.key})。