我目前正在尝试在JSF中的h:dataTable中显示ResultSet。
基本上我正在做的是执行一个可以插入网站的SQL语句,我想在表中显示它的结果。 我无法创建模型类,因为使用的表也是动态的。 棘手的部分是事实,我不知道ResultSet中有多少列,也不知道数据类型(目前我从ResultSetMetaData获取这些列)。
如何使用JSF在网站上的表格中显示具有动态列和列内容(不同数据类型)的内容?
提前致谢。
答案 0 :(得分:0)
在托管bean中有一个像List<Map<String, Object>> results
这样的数据结构来存储结果。
在UI端,使用2个嵌套的ui:repeat
元素而不是h:dataTable
。
外部重复将循环行(results
),内部重复将循环列(result.keySet()
),每个单元格将通过result.get(fieldName)
获取其值。
未经测试的UI代码:
<table>
<ui:repeat value="#{mb.results}" var="result">
<tr>
<ui:repeat value="#{result.keySet()}" var="fieldName">
<td>
#{result.get(fieldName)}
</td>
</ui:repeat>
</tr>
</ui:repeat>
</table>