sql - 结果SQL结果从Grails Controller 到下拉列表框

标签 sql grails groovy

我正在对数据库进行查询,并尝试将列表返回到下拉列表框。我没有任何错误,但是没有任何结果。当我运行SQL时,我知道它应该返回值,但是我可能在 Controller 或 View 端弄乱了东西。任何帮助表示赞赏。

Controller -

 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}" />

另外,有什么好方法可以查看我的 Controller SQL查询返回的内容吗?

除了Joshua展示的方式之外,我还能够以这种方式进行工作。现在,我有两个选择可以做到这一点! --
Test Name: <g:select name="p_project_name" from="${results?.NAME}" noSelection="${['null':'Select One...']}" />

最佳答案

您的结果未显示在选择列表中的原因是,您尚未告知代码如何找到适当的值。 resultsList<GroovyRowResult>,因此您需要告诉标记要使用的结果中的哪一列:

<g:select from="${results}" optionKey="NAME" optionValue="NAME" />

您可以在documentation中阅读有关g:select标记的更多信息。

关于sql - 结果SQL结果从Grails Controller 到下拉列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488928/

相关文章:

mysql - 选择列中具有第二大值的行

grails - 如何在Grails Assets 管道 Controller 操作上放置@Cacheable批注?

grails - 使用 HTTPBuilder POST -> NullPointerException?

grails - Groovy HTTPBuilder POST : missing method(s)

sql - 从同一个表中进行多项选择(带 Null)

mysql - 在同一列中按条件计数

sql - postgresql触发器函数中修改OLD为DELETE返回

Grails SSL证书错误

Grails 集成测试响应对象在后续调用 Controller 后不会更改

time - Groovy 持续时间