0

我有一个数据库表,其中包含一组人(审阅者)对一组问题给出的答案,这意味着我正在使用普通选择查询获取 m*n(问题数量 * 人数)记录。现在我有了该实体(数据库表的实体类)对象的列表,我想以以下格式在 xhtml 页面上显示结果: 1. 第一列显示所有不同的问题。2. 列标题的其余部分是回答它的人的姓名。3. 休息数据应该是特定审稿人针对特定问题给出的答案。

如何在primefaces中实现这一点?任何帮助表示赞赏。提前致谢 :)

4

1 回答 1

0

Primefaces<p:dataTable>可以使用<p:columns>. 查看Primefaces中 DataTable -> Dynamic Columns 下的文档。

你需要两件事:

  1. 创建一个List<String> columns, 内容如{"Question", "Peter", "Thomas", "Andrew", ...},
  2. 创建一个数组List<String[]> answers,其中String[]数组的大小与您的受访者人数 + 1 相同,并且将在索引 0 处包含问题的文本,然后是您的用户答案:{"What is your PIN number?", "1234", "1122","2211",...}。小心维护答案和用户顺序。

然后,您的表格在 JSF 页面中将如下所示:

<p:dataTable var="answer" value="#{fooBean.answers}">
   <p:columns var="columnName" value="#{fooBean.columns}" columnIndexVar="columnNumber">
      <f:facet name="header">
          <h:outputText value="#{columnName}" />
      </f:facet>
      <h:outputText value="#{answer[columnNumber]}" />
    </p:columns>
</p:dataTable>
于 2013-05-14T10:05:37.873 回答