如果在grails 2.2.4中调用私有方法后更改了对象参数,则不会分配值

时间:2013-10-16 13:52:46

标签: grails grails-2.0 grails-2.2 grails-2.1

我有一个调用私有方法的方法。此方法返回模型。返回后,我会更改一些对象值并进行渲染。 在jsp上,当我打印'message'的值时,我没有得到那个值。这是代码

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

私人方法

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

&安培; gsp

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

但是如果我在返回之前在私有方法中为message添加值,那么它的值将被打印在gsp上。

这是在gsp中打印值的私有方法

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

这曾经在grails 1.3.7中运行良好,但为什么会发生在grails 2.2.4

1 个答案:

答案 0 :(得分:0)

这在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