3

我们正在尝试清理 groovy sql.rows 结果以仅包含从查询返回的值。

查询服务非常简单

def getRowsFromDB(String sqlStatement) {
    def sql = Sql.newInstance(-redacted-)
    def rows = sql.rows (sqlStatement)
    return rows
}

该列表返回如下:

[SCBCRSE_SUBJ_CODE:SOCI, SCBCRSE_CRSE_NUMB:291, SCBCRSE_TITLE:Special Topics]
[SCBCRSE_SUBJ_CODE:SOCI, SCBCRSE_CRSE_NUMB:306, SCBCRSE_TITLE:Sociology of Work]
[SCBCRSE_SUBJ_CODE:SOCI, SCBCRSE_CRSE_NUMB:308, SCBCRSE_TITLE:Soc of Education]
[SCBCRSE_SUBJ_CODE:SOCI, SCBCRSE_CRSE_NUMB:312, SCBCRSE_TITLE:Criminal Adjudication]
[SCBCRSE_SUBJ_CODE:SOCI, SCBCRSE_CRSE_NUMB:314, SCBCRSE_TITLE:Extraordinary Group Behavior]

但我们希望它像:

SOCI 291 Special Topics
SOCI 306 Sociology of Work
SOCI 308 Soc of Education
SOCI 312 Criminal Adjucation
SOCI 314 Extraordinary Group Behavior

这是一件很容易做到的事情吗?我试图添加.value到 .gsp 标记,但它会抛出一个错误,提示找不到方法。

最后,当我在我的视图中使用它时{ },列表中的每个项目总是有一组环绕,你如何摆脱这些?

4

2 回答 2

9

如果您不希望结果String只是一个列表来迭代并在视图中进行控制,请使用:

rows.collect{it.values()}

应该给你

[[SOCI, 291, Special Topics], 
 [SOCI, 306, Sociology of Work], 
 [SOCI, 308, Soc of Education], 
 [SOCI, 312, Criminal Adjudication], 
 [SOCI, 314, Extraordinary Group Behavior]]
于 2013-08-28T16:04:26.967 回答
6

您可以将 GroovyRowResults 列表转换为字符串列表,然后再将它们返回给 Gsp:

return rows.collect {
    "${it.SCBCRSE_SUBJ_CODE} ${it.SCBCRSE_CRSE_NUMB} ${it.SCBCRSE_TITLE}"
}
于 2013-08-28T15:56:33.257 回答