我正在对数据库进行查询并尝试将列表返回到下拉列表框。我没有收到任何错误,但我没有得到任何结果。当我运行SQL时,我知道它应该返回值,但我可能在控制器或视图方面搞砸了一些东西。任何帮助赞赏。
控制器 -
import groovy.sql.Sql
class V1Controller {
def dataSource
def index() {
def nameList = {
def db = new Sql(dataSource)
def results = db.rows("SELECT NAME FROM MIT_TEST_NAME")
//results.each{row -> log.debug .name}
[results:results]
}
}
}
查看 -
Test Name: <g:select name="p_project_name" from="${results}" />
另外,有没有什么好方法可以查看我的控制器SQL查询返回的内容?
除了约书亚所展示的方式之外,我还能够以这种方式工作。现在我有两种选择! -
Test Name: <g:select name="p_project_name" from="${results?.NAME}" noSelection="${['null':'Select One...']}" />
答案 0 :(得分:1)
您的结果未显示在选择列表中的原因是您没有告诉标记如何找到适当的值。 results
是List<GroovyRowResult>
,因此您需要告诉标记您要使用的结果中的哪一列:
<g:select from="${results}" optionKey="NAME" optionValue="NAME" />
您可以在documentation。
中详细了解g:select标记