我目前正在尝试在JSF中的h:dataTable中显示ResultSet。
基本上我正在做的是执行一个可以插入网站的SQL语句,我想在表中显示它的结果。我无法创建模型类,因为使用的表也是动态的。棘手的部分是事实,我不知道ResultSet中有多少列,也不知道数据类型(目前我从ResultSetMetaData获取这些列)。
我如何使用JSF在网站上的表中显示动态列和列内容(不同数据类型)的内容?
提前致谢。
在托管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>