【问题标题】:Grails GSP render problemGrails GSP 渲染问题
【发布时间】:2011-05-23 15:18:43
【问题描述】:

我有一个域类,我想在运行时执行数据库调用以将对象列表填充为属性。我有一棵带有“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”属性,该属性从相关控制器中的以下函数传递给视图“树”:

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

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

Member$_closure1@3708ab98

我希望有一个列表。

任何想法我做错了什么?

干杯。

【问题讨论】:

    标签: grails grails-orm gsp


    【解决方案1】:

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

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

    【讨论】:

    • 您能否展示一下您的 Tree 和 headMember 域类的外观?
    • 我在实施您的解决方案时实际上犯了一个错误。它工作正常!非常感谢:-)
    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多