0

假设我有以下课程书

class Book{
    String author;
    String title;
}

我检索了 Book ( List<Book>) 的列表,我想将它显示在像这样的表中

author1:
    title1
    title11

author2:
    title2
    title22
    title222

我正在考虑创建一个 hashmap 映射作者 => 书籍列表,但是,正如我在 SO 中所读到的,h:datatable 和 ui:repeat 都不支持 hashmap。

关于如何实现这一目标的任何提示?

谢谢你。

PS:我使用的是 jsf 1.2

随意建议一个更好的标题

4

1 回答 1

2

我认为您必须调整数据模型才能将其转换为h:dataTable.

我建议使用书籍列表创建一个 Author 类:

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>
于 2011-04-05T08:10:39.933 回答