2011-11-14 5 views
0

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

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

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

Так в качестве отправной точки, глядя на объект Table ...

Использование Spring MVC 3.0

Модель:

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

JSTL выглядит хорошо, но ваши примеры более упрощены, поэтому трудно сказать. Вы проверили, что ваш объект MaV переносится, добавив к нему тестовую строку? Получает ли $ {table.id} ожидаемое значение «тест»? Вы получаете пустые или элементов в HTML (вы не показали окружающий JSP-код)? Получил ли ваш класс Row getter для PKValue (класс Row не показан)? – nickdos

ответ

1

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

${row.pKValue} 

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

Смежные вопросы