【问题标题】:how to pass object instance from one controller to action in other controller in grails [duplicate]如何在grails中将对象实例从一个控制器传递到另一个控制器中的动作[重复]
【发布时间】:2012-04-23 05:31:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: grails groovy grails-orm


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    不久前我有一个类似的问题,我最终将对象添加到 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

    【讨论】:

    • 我已经尝试过链...对我来说效果很好。
    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多