Grails GSP渲染问题

时间:2011-05-23 15:18:43

标签: 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'属性,该属性从相关控制器中的以下函数传递到视图'tree':

def show = {
        def tree = Tree.get(params.id)
        render(view:'show', model:[tree:tree])
    }

当我在浏览器中查看此内容时,我得到:

Member$_closure1@3708ab98

我希望有一个清单。

任何想法我做错了什么?

干杯。

1 个答案:

答案 0 :(得分:2)

当您调用婚姻时,您正在调用一个闭包并返回此闭包。我认为你应该把它改成一种方法,就像这样:

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()方法并返回婚姻清单。