0

可能重复:
在 grails 中的控制器操作之间传递对象的最佳方式

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

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

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

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

4

2 回答 2

1

您不能将一个控制器中的实例变量传递给另一个控制器,您必须传递 id,并让第二个控制器再次加载它。它可能会在第一次加载时被缓存,所以它会来自缓存,实际上不必重新加载。

于 2012-04-22T21:25:59.437 回答
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

于 2012-04-22T21:31:06.783 回答