带有动态列的h:dataTable中的JSF ResultSet

问题描述 投票:0回答:1

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

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

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

提前致谢。

jsf resultset
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.