可能重复:
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对象的域实例对象。
答案 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