我正试图解决一个棘手的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属性,不确定问题出在哪里,任何见解都会很棒!
答案 0 :(得分:1)
假设Row
上的方法是getPKValue
,那么您需要在JSP中将其称为pKValue
,而不是PKValue
,即
${row.pKValue}
这是一个糟糕的名称,但它看起来很混乱。我建议将它重命名为更传统的东西,例如getId
(即${row.id}
)或getKey
(即${row.key}
)。