grails - Grails GSP渲染问题

标签 grails gorm gsp

我有一个域类,我想在运行时执行数据库调用以将对象列表填充为属性。我有一棵带有'headMember'属性的树,该属性是一个具有以下功能的对象:

def marriages = {
    def marriages = Marriage.findAll("from Marriage as m where m.mainMember.name=:name", [name:name])
    return [marriages:marriages]
}

在我的GSP中,我使用${tree?.headMember?.marriages}访问模型的'headMember'属性,该属性从相关 Controller 中的以下函数传递给 View 'tree':
def show = {
        def tree = Tree.get(params.id)
        render(view:'show', model:[tree:tree])
    }

当我在浏览器中查看此内容时,我得到:
Member$_closure1@3708ab98

我希望有一个 list 。

有什么想法我做错了吗?

干杯。

最佳答案

调用婚姻时,您正在调用闭包,并且此闭包将返回。我认为您应该将其重新设计为一种方法,例如:

static transients = ['marriages'] // tell hibernate that marriages is not a persistent property

List<Marriages> getMarriages(){
    return Marriage.findAll("from Marriage as m where m.mainMember.name=:name", [name:name])    
}

这样,当您在GSP中调用${tree?.headMember?.marriages}时,就会调用getMarriages()方法,并应返回婚姻列表。

关于grails - Grails GSP渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099251/

相关文章:

grails - 是否可以在Grails中使用只读的JNDI数据源?

grails - 无法使用AST转换将方法添加到GORM对象

grails - 如何在下拉菜单中分配ID以了解所选内容

json - Grails:无法解析json并出现错误没有方法签名:static grails.converters.JSON.parse()

grails - GORM双向一对多

oracle - 如何在我的域类中存储一个巨大的字符串?

grails - Grails 项目的 Web 前端工具

javascript - 无法获取多个 Canvas 饼图

javascript - 开始构建 Widget

tomcat - 使用 h2 文件数据库部署的 Grails 应用程序出错