Grails GSP рендеринг проблемы - PullRequest
1 голос
/ 23 мая 2011

У меня есть класс домена, который я хочу во время выполнения сделать вызов базы данных, чтобы заполнить список объектов как свойство.У меня есть дерево со свойством '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

где я 'жду списка.

Есть идеи, что я делаю не так?

Ура.

1 Ответ

2 голосов
/ 23 мая 2011

Когда вы звоните в брак, вы звоните закрытию, и это закрытие возвращается.Я думаю, что вы должны переделать его, чтобы он был методом, что-то вроде этого:

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])    
}

Таким образом, когда вы вызываете ${tree?.headMember?.marriages} в вашем GSP, вызывается метод getMarriages() и список браков долженбыть возвращенным.

...