如何将对象实例从一个控制器传递给grails中其他控制器中的操作

时间:2012-04-22 21:17:51

标签: grails groovy gorm

  

可能重复:
  Best way to pass objects between controller actions in grails

我在控制器中有一个def show,它应该将信息作为对象发送到我试过的其他控制器中的动作显示

def show() {
        Person personDomainInstance = getPersonById(params.personId)

            redirect(controller: "NewPersonController", action: "show", personDomainInstance:personDomainInstance)
        }
    }

当我尝试这个时它会显示所请求的资源(/......./show)不可用。我是否遵循正确的重定向方法。我可以用这种方式传递对象吗?还有一个问题是如何将人域对象绑定到NewPersonDomain对象的域实例对象。

2 个答案:

答案 0 :(得分:1)

您无法将一个控制器中的实例变量传递给另一个控制器,您必须传递该ID,并让第二个控制器再次加载它。它可能会从第一个加载缓存,因此它将来自缓存,而不是实际上必须重新加载。

答案 1 :(得分:0)

我之前有过类似的问题,最后我将对象添加到servletContext对象中。如果需要根据用户进行更改,建议将其添加到会话中。

Servlet上下文信息 - > http://www.grails.org/doc/latest/ref/Controllers/servletContext.html

以前我问过的全线程 - > http://grails.1312388.n4.nabble.com/Passing-a-list-of-Groovy-Object-between-Controllers-td3551395.html