JSP / JSTL разбирает ArrayList, который является свойством переданного объекта - PullRequest
0 голосов
/ 14 ноября 2011

Я пытаюсь разобраться в хитрой проблеме JSTL, надеясь получить некоторую помощь с ...

Я передаю табличный объект из контроллера Spring MVC в JSP с помощью ModelAndView, у табличного объекта естьArrayList объектов Row, каждый из которых, в свою очередь, имеет объекты ArrayList of Field.

Я заполняю объект Table в контроллере для отображения на странице jsp, и я пытаюсь выяснить, как анализировать черезМассивы для создания html-таблицы с использованием JSTL.

Таким образом, в качестве отправной точки, рассматривая объект 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 Ответ

1 голос
/ 17 ноября 2011

Предполагая, что метод для Row равен getPKValue, вам нужно ссылаться на него в JSP как pKValue, а не PKValue, т.е.

${row.pKValue}

Это плохое название для свойства, хотя, оно выглядит запутанным. Я предлагаю переименовать его в нечто более обычное, например, getId (т.е. ${row.id}) или getKey (т.е. ${row.key}).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...