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属性值或在不在生产环境中运行时使用 https://:<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 的重定向。