我有一个数据库表,其中包含一组人(审阅者)对一组问题给出的答案,这意味着我正在使用普通选择查询获取 m*n(问题数量 * 人数)记录。现在我有了该实体(数据库表的实体类)对象的列表,我想以以下格式在 xhtml 页面上显示结果: 1. 第一列显示所有不同的问题。2. 列标题的其余部分是回答它的人的姓名。3. 休息数据应该是特定审稿人针对特定问题给出的答案。
如何在primefaces中实现这一点?任何帮助表示赞赏。提前致谢 :)
我有一个数据库表,其中包含一组人(审阅者)对一组问题给出的答案,这意味着我正在使用普通选择查询获取 m*n(问题数量 * 人数)记录。现在我有了该实体(数据库表的实体类)对象的列表,我想以以下格式在 xhtml 页面上显示结果: 1. 第一列显示所有不同的问题。2. 列标题的其余部分是回答它的人的姓名。3. 休息数据应该是特定审稿人针对特定问题给出的答案。
如何在primefaces中实现这一点?任何帮助表示赞赏。提前致谢 :)
Primefaces<p:dataTable>
可以使用<p:columns>
. 查看Primefaces中 DataTable -> Dynamic Columns 下的文档。
你需要两件事:
List<String> columns
, 内容如{"Question", "Peter", "Thomas", "Andrew", ...}
,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>