Заголовок таблицы взят из элемента списка, используемого с пользовательским интерфейсом: repeat - PullRequest
0 голосов
/ 05 апреля 2011

Допустим, у меня есть следующий класс Book

class Book{
    String author;
    String title;
}

Я получаю список Book (List<Book>) и хочу отобразить его в таблице, например

author1:
    title1
    title11

author2:
    title2
    title22
    title222

Я думал о создании списка книг hashmap author =>, но, как я читал в SO, hashmap не поддерживается ни в h: datatable, ни в ui: repeat.

Любые советы о том, как добитьсяэто?

Спасибо.

PS: я использую jsf 1.2

Не стесняйтесь предложить лучший заголовок

1 Ответ

2 голосов
/ 05 апреля 2011

Я думаю, что вы должны адаптировать свою модель данных, чтобы включить ее в h:dataTable.

Предлагаю создать класс Автор со списком книг:

class Author{
  String name;
  List<Book> books;
  ..
  // getters and setters
}

Затем вы можете построить вложенную таблицу данных на основе List<Author> authorList (не проверено):

<h:dataTable value="#{bean.authorList}" var="author">
  <h:column>
    <h:outputText value="#{author.name}"/>
    <h:dataTable value="#{author.books}" var="book">
      <h:column>
        <h:outputText value="#{book.title}"/>
      </h:column>
    </h:dataTable>  
  </h:column>
</h:dataTable>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...