在JSP / GSP中显示ResultSet

时间:2011-02-01 02:33:30

标签: java javascript jsp grails gsp

有谁知道在JSP / GSP页面中查找有关显示ResultSet结果的文档的位置?

结果是在GroovyRowResult对象中返回GSP。

以下是我现在如何展示它。

<g:if test="${results.size() > 0}">
<table>
    <g:each in="${results}" var="GroovyRowResult" status="index">
        <g:set var="result" value="${GroovyRowResult}" />
        <g:if test="${index == 0}">
            <tr>
                <g:each in="${result.keySet()}" var="key" status="key_index">
                    <g:if test="${key_index == 0}">
                        <th id="t${key_index}" class="staticTHcol">${key.trim()}</th>
                    </g:if>
                    <g:else>
                        <th id="t${key_index}">${key.trim()}</th>
                    </g:else>
                </g:each>
            </tr>
        </g:if>
        <tr>
        <g:each in="${result.values()}" var="value" status="index2">
            <g:if test="${index2 == 0}">
                <td headers="t${index2}" class="staticTDcol">${value}</td>
                <g:set var="record_id" value="${value}" />
            </g:if>
            <g:else>
                <td headers="t${index2}" class="nonStaticTDcol">
                    <g:textField name="${record_id}" value="${value}" onfocus="setDefaultValue('${value}');" onblur="updateValue(this,'${record_id}')" />
                </td>
            </g:else>
        </g:each>
        </tr>
    </g:each>
</table>

    没有结果

我没有使用任何ORM技术,只使用纯JDBC。我有基础知识(限制返回的行,分页和结果的基本布局)。现在我需要进入排序等更高级的功能。

我正在使用最新版本的Grails,并想知道是否有一个插件可以为我提供一些此功能。或许有人知道一个好的JS扩展或库可能能够为此工作。

4 个答案:

答案 0 :(得分:3)

我认为ResultSet不应该靠近JSP / GSP。它永远不会出现在你的持久层中。

ResultSet是一个数据库游标 - 稀缺资源。关闭它的责任应该保留在创建它的方法中。

正确的方法是将ResultSet映射到对象或集合中,在范围内关闭它,然后将对象或集合传递给JSP / GSP以根据需要进行排序/分页/显示。

答案 1 :(得分:0)

完全同意duffymo关于解决方案的设计。在Grails中,您可以将数据访问封装在Service类中,然后将表示包装在taglib中,该taglib可以使用Service类来检索数据。

如果您通过JDBC使用直接SQL,那么进行排序(在SQL中排序)。使用GSQL为SQL添加一点Grooviness,docs是使用Groovy SQL后台的一个很好的起点。

答案 2 :(得分:0)

问题是关于在JSP上对数据进行排序的一些方法,建议使用某种JS。


所以...这里是:http://code.google.com/apis/ajax/playground/#motion_chart和其他谷歌图表和表 - 这些东西真的很可爱,当然,可以排序。

要向他们提供数据,您只需要将list / array / JSON传递给JSP,并使用JS中提供的一些循环作为示例。

答案 3 :(得分:0)

<table  class="main_grid_table" width="100%">
<thead>
<h3>Number of items found are ${numberofrows}</h3>
<th class="main_grid_column"><b>Factory Id</b></th>
<th class="main_grid_column"><b>Applicant Name</b></th>
<th class="main_grid_column"><b>Designation</b></th>
<th class="main_grid_column"><b>Factory_name</b></th>
<th class="main_grid_column"><b>Situation of Dist</b></th>
<th class="main_grid_column"><b>Police Station</b></th>
</thead>
<% while(resultset.next())
{%>
<tr>
<td align="center" class="main_grid_column"><a href="printAmmendmendFormOne.htm?facid=<%=resultset.getString("Fac_id")%>"><%=resultset.getString("Fac_id")%></a></td>
<td align="center" class="main_grid_column"><%=resultset.getString("Appname")%></td>
<td align="center" class="main_grid_column"><%=resultset.getString("Designation")%></td>
<td align="center" class="main_grid_column"><%=resultset.getString("Factory_name")%></td>
<td align="center" class="main_grid_column"><%=resultset.getString("Situation_f_district")%></td>
<td align="center" class="main_grid_column"><%=resultset.getString("nearest_police_station")%></td>
</tr>
<%}%>
<tbody>
</tbody>
</table>