redirect(action: "show")
redirect(controller: "book", action: "list")
redirect(controller: "book", action: "list", namespace: "publishing")
redirect(controller: "book", action: "list", plugin: "publishingUtils")
redirect(action: "show", id: 4, params: [author: "Stephen King"])
redirect(controller: "book", action: "show", fragment: "profile")
redirect(uri: "book/list")
redirect(url: "http://www.blogjava.net/BlueSUN")
redirect(Book.get(1))
重定向
目的
使用 HTTP 重定向从一个操作流程重定向到下一个操作流程。
示例
描述
将当前操作流程重定向到另一个操作流程,还可以选择传递参数和/或错误。从命名空间控制器发出重定向时,目标控制器的命名空间暗示是发起重定向的控制器的命名空间。若要从命名空间控制器发出重定向到不在命名空间中的控制器,命名空间必须明确指定为 `null`,如下所示。
class SomeController {
static namespace = 'someNamespace'
def index() {
// issue a redirect to PersonController which does not define a namespace
redirect action: 'list', controller: 'person', namespace: null
}
}
参数
redirect(Map params)
-
action
(可选) - 链接中要使用的操作名称,如果未指定,将会链接到默认操作 -
controller
(可选) - 链接中要使用的控制器名称,如果未指定,将会链接到当前控制器 -
namespace
(可选) - 要重定向到的控制器的命名空间 -
plugin
(可选) - 提供控制器的插件名称 -
id
(可选) - 链接中要使用的 ID -
fragment
(可选) - 要使用的链接片段(通常称为锚标记) -
mapping
(可选) - 要用于重写链接的已命名的 URL 映射 -
params
(可选) - 包含请求参数的映射 -
url
(可选) - 包含操作、控制器、ID 等的映射 -
absolute
(可选) - 如果为 true(默认值),将使用来自application.yml
的grails.serverURL
属性值或在不在生产环境中运行时使用 http://localhost:<port> 为链接目标地址加上前缀。如果application.yml
中无值,将针对Location
标头生成部分 URI。 -
base
(可选) - 设置将添加到链接目标地址的前缀,通常是一个绝对服务器 URL。如果同时指定了absolute
属性,则该属性将覆盖absolute
属性的行为。 -
permanent
(可选) - 如果为true
,则重定向将使用 301 HTTP 状态代码(永久移动)发出,否则将发出 302 HTTP 状态代码
域类
redirect(Object domainClass)
一种特殊情况是如果将域类传递到 redirect
,它将使用 LinkGenerator
来创建 URL。例如,redirect(Book.get(1))
将生成到 /book/show/1
的重定向。