我正在对数据库进行查询,并尝试将列表返回到下拉列表框。我没有任何错误,但是没有任何结果。当我运行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...']}" />
最佳答案
您的结果未显示在选择列表中的原因是,您尚未告知代码如何找到适当的值。 results
是List<GroovyRowResult>
,因此您需要告诉标记要使用的结果中的哪一列:
<g:select from="${results}" optionKey="NAME" optionValue="NAME" />
您可以在documentation中阅读有关g:select标记的更多信息。
关于sql - 结果SQL结果从Grails Controller 到下拉列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488928/