具有动态列

时间:2017-12-11 10:59:14

标签: jsf resultset

我目前正在尝试在JSF中的h:dataTable中显示ResultSet。

基本上我正在做的是执行一个可以插入网站的SQL语句,我想在表中显示它的结果。 我无法创建模型类,因为使用的表也是动态的。 棘手的部分是事实,我不知道ResultSet中有多少列,也不知道数据类型(目前我从ResultSetMetaData获取这些列)。

如何使用JSF在网站上的表格中显示具有动态列和列内容(不同数据类型)的内容?

提前致谢。

1 个答案:

答案 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>