def shawshankRedemption = new Book(title: 'The Shawshank Redemption')
chain(action: "details", model: [book: shawshankRedemption])
chain
用处
使用 flash.html[flash] 存储,在从一个动作到另一个动作的 HTTP 重定向后,隐式保留模型。
示例
说明
用法
chain(controller*, action, id*, model, params*)
参数
-
uri
- 要重定向的完整 uri(示例 /book/list、book/show/2) -
controller
(可选的) - 要重定向的控制器;如果未指定,则默认为当前控制器 -
namespace
(可选的) - 要链接到的控制器的命名空间 -
action
- 重定向到的动作,要么是字符串名称,要么是对当前控制器中动作的引用 -
id
(可选的) - 重定向中使用的 id -
model
- 要链接到下一个动作的模型 -
params
(可选的) - 要传递给链接到的动作的参数。
chain 方法将传递的模型存储在 flash 范围中,然后执行 HTTP 重定向。然后,该模型将还原,供下一个请求使用。将传递给视图的模型将通过从传递给 chain 方法的模型开始创建,然后将所有数据添加到下一个动作返回的模型中,这可能会替换一些 chain 方法中最初传递的模型中的数据。例如
def one() {
chain action: 'two', model: [name: 'Tony', town: 'Birmingham']
}
def two() {
[name: 'Anthony', country: 'England']
}
如果向 one
动作发送请求,则该动作链接到 two
动作,后者返回一个模型。传递给视图的模型将包含 [name: 'Anthony', town: 'Birmingham', country: 'England']
chain 方法需要一个重定向的 URI 或 控制器/动作/id 名称组合