2

这是一种从表中选择数据并使用 JSP 标签库在 HTML 表中显示结果的通用方法。在 Grails 中执行此操作的通用方法是什么?也就是说,使用几行 SQL 并在 Grails 中从头开始生成一个 HTML 表,包括作为标题的列名。

<sql:query var="results" dataSource="${dsource}">
    从 foo 中选择 *
</sql:查询>
(行数:${results.rowCount})
<表格边框="1">
    <!-- 列标题 -->
    <tr bgcolor=青色>
        <c:forEach var="columnName" items="${results.columnNames}">
            <th><c:out value="${columnName}"/></th>
        </c:forEach>
    </tr>
    <!-- 列数据 -->
    <c:forEach var="row" items="${results.rowsByIndex}">
        <tr>
            <c:forEach var="column" items="${row}">
                <td><c:out value="${column}"/></td>
            </c:forEach>
        </tr>
    </c:forEach>
</table>
4

2 回答 2

2

这个问题可以改写为,我如何像一个天真的 ASP.NET 开发人员那样编写代码?(并非所有 ASP.NET 开发人员都很天真,有些人可能相当优秀)

  1. 您可以在 gsp 页面中使用任何静态方法。您可以使用任何 MyDomain.findBy、list()、从页面范围计算您想要的数量。
  2. 您还可以使用条件查询 MyDomain.createCriteria() 然后您可以将结果传递给 taglib。

    但这一切似乎都违反了 MVC 原则。你的观点应该只是一个观点......

您所问的对于 grails 应用程序来说确实不是惯用的。我意识到这在 Microsoft 世界中很常见,执行查询,将其传递给数据网格....但是 Grails 中没有直接的类比,可能是有充分理由的

于 2008-11-05T20:49:41.730 回答
0

您可以按照描述使用 taglib。您只需要让 Grails 意识到这一点。

于 2008-11-05T16:59:00.150 回答