IT序号网

grails之Grails GSP渲染问题

powertoolsteam 2026年07月31日 编程语言 73 0

我有一个域类,我想在运行时执行数据库调用以将对象列表填充为属性。我有一棵带有'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()方法,并应返回婚姻列表。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!