我们正在尝试清理一个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标记中,但它会抛出一条错误,指出找不到任何方法。
最后当我在我的视图中使用它时,列表中的每个项目总会有一组{ }
,你如何摆脱这些?
答案 0 :(得分:8)
如果您不希望结果为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]]
答案 1 :(得分:6)
您可以将GroovyRowResults列表转换为字符串列表,然后再将它们返回给Gsp:
return rows.collect {
"${it.SCBCRSE_SUBJ_CODE} ${it.SCBCRSE_CRSE_NUMB} ${it.SCBCRSE_TITLE}"
}