我有一个域类,我想在运行时执行数据库调用以将对象列表填充为属性。我有一棵带有'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/