Значения не присваиваются, если параметры объекта изменяются после вызова приватного метода в grails 2.2.4

У меня есть метод, который вызывает частный метод. Этот метод возвращает модель. Как только он возвращается, я изменяю некоторые значения объекта и визуализирую его. В jsp, когда я печатаю значение «сообщения», я не получаю это значение. Вот код

def model = myMeth();
model.objkey.message = 'check message'
render(view: "index", model: model)

частный метод

private def myMeth() {
.....
    [objkey: objvalue]
}

& гсп

<div class="message">${objkey?.message}</div>

Но если я добавлю значение к сообщению в частном методе перед возвратом, то его значение будет напечатано на gsp.

Это частный метод, который выводит значение в gsp.

private def myMeth() {
    .....
  objvalue.message = 'check message'
  [objkey: objvalue]
}

Раньше это хорошо работало в Grails 1.3.7, но почему это происходит в Grails 2.2.4?


person user1298426    schedule 16.10.2013    source источник
comment
где и как вы звоните loadTerm()?   -  person Igor Artamonov    schedule 16.10.2013
comment
Извините .. это мойMeth()   -  person user1298426    schedule 16.10.2013


Ответы (1)


Это работает, как и ожидалось, в 2.2.4 с приведенной ниже настройкой, нажимающей действие index. Это у вас так устроено?

//controller
def index(){
    def model = myMethod()
    model.objectKey.message = 'check message'
    render view: "index", model: model
}

private def myMethod(){
    def objectVal = [:]

    [objectKey: objectVal]
}

//grails-app/views/<controllerName>/index.gsp
<div>${objectKey?.message}</div> //renders appropriate message
person dmahapatro    schedule 17.10.2013