Как перебрать объект по списку объектов в JSTL? - PullRequest
1 голос
/ 03 января 2012

У меня есть класс с именем Language с 1 полем с именем name.У меня есть другой класс с именем Speech, в котором есть член language.Мне нужно перебрать список Speech объектов.В JSTL:

<c:forEach items="${requestScope.Speech}" var="speech">
  <tr>
    <td>&nbsp;${speech.id}</td>
    <td>&nbsp;${speech.language.name}</td>
  </tr> 
</c:forEach>

Мое второе утверждение ${speech.language.name} не работает.Как я могу заставить его работать?

Уроки речи и языка:

public class Speech {
    private int id;
    private Language language=null;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public Language getLanguage() {
        return language;
    }
    public void setLanguage(Language language) {
        this.language = language;
    }
}

public class Language {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    } 
}

Ответы [ 2 ]

2 голосов
/ 03 января 2012

JSP EL не использует поля.Он использует свойства.Чтобы этот оператор работал, вам нужно иметь открытый метод getLanguage() в Speech и открытый метод getName() в Language.

РЕДАКТИРОВАТЬ:

Еслигеттеры есть, и ничего не печатается, это может иметь четыре причины:

  • в запросе нет атрибута Speech
  • в списке есть список выступленийАтрибут запроса речи, но этот список пуст
  • язык каждой речи списка нулевой
  • имя каждого языка нулевое или пустое.

Если что-то напечатано для идентификатора речи, это устраняет первые две причины.

2 голосов
/ 03 января 2012

Убедитесь, что в вашем классе Speech определен метод public Language getLanguage().

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