Значение свойства Итератора Struts2 (не работает) - PullRequest
2 голосов
/ 22 января 2012

Я пытаюсь использовать итератор Struts для записи некоторых данных из списка. Студент - это класс, который я определил. Свойство s: при использовании с атрибутом value, похоже, не работает вообще.

У меня есть следующий код в JSP:

<s:iterator value="students" var="student">
    <h2><s:property /></h2>
    <h2><s:property value="firstName" /></h2>
    <h2><s:property value="student.firstName" /></h2>
    <h2><s:property value="top.firstName" /></h2>
    <h2><s:property value="[0].firstName" /></h2>
    <h2><s:property value="#firstName" /></h2>
</s:iterator>  

На первом теге свойства работает. Он печатает toString () объекта Student. Все остальные теги свойств вообще ничего не печатают.

Метод toString () класса Student выглядит следующим образом:

public String toString() {
    return firstName + " " + lastName + " " + Integer.valueOf(age);
}

Класс Student имеет метод getFirstName () следующим образом:

String getFirstName() {
    return firstName;
}  

Я использую Struts 2.1.6
В файлах журналов нет исключений.
При просмотре исходного html я просто вижу пустые теги h2.
Интересно, в чем здесь проблема? Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 22 января 2012

Ваш метод getFirstName () имеет доступ только на уровне пакета.Он должен быть общедоступным, чтобы быть доступным из JSP.

измените его на

public String getFirstName()

и все готово.

0 голосов
/ 25 января 2012

Поскольку вы используете атрибут «var» в теге итератора, вы должны ссылаться на значение из объекта, например

<s:iterator value="students" var="student">
<h2><s:property value="#student.firstName" /></h2>
</s:iterator>

Вы можете написать тот же код без использования атрибута var, как показано ниже

<s:iterator value="students">
<h2><s:property value="firstName" /></h2>
</s:iterator>

Оба будут работать одинаково.

...