(Quick Reference) ## redirect ### Purpose To redirect flow from one action to the next using an HTTP redirect. ### Examples
    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))
### Description Redirects the current action to another action, optionally passing parameters and/or errors. When issuing a redirect from a namespaced controller, the namespace for the target controller is implied to be that of the controller initiating the redirect. To issue a redirect from a namespaced controller to a controller that is not in a namespace, the namespace must be explicitly specified with a value of `null` as shown below.
    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
        }
    }
### Parameters `redirect(Map params)` `action` (optional) - the name of the action to use in the link, if not specified the default action will be linked `controller` (optional) - the name of the controller to use in the link, if not specified the current controller will be linked `namespace` (optional) - the namespace of the controller to redirect to `plugin` (optional) - the name of the plugin which provides the controller `id` (optional) - the id to use in the link `fragment` (optional) - The link fragment (often called anchor tag) to use `mapping` (optional) - The named URL mapping to use to rewrite the link `params` (optional) - a map containing request parameters `url` (optional) - a map containing the action, controller, id etc. `absolute` (optional) - If `true` (default) will prefix the link target address with the value of the `grails.serverURL` property from `application.yml`, or http://localhost:<port>; if there is no value in `application.yml` and not running in the production environment. If `false` a partial URI is generated for the `Location` header. `base` (optional) - Sets the prefix to be added to the link target address, typically an absolute server URL. This overrides the behaviour of the `absolute` property if both are specified. `permanent` (optional) - If `true` the redirect will be issued with a 301 HTTP status code (permanently moved), otherwise a 302 HTTP status code will be issued ### Domain Class `redirect(Object domainClass)` A special case is if a domain class is passed into `redirect` it will use the `LinkGenerator` to create the URL. For example `redirect(Book.get(1))` will generate a redirect to `/book/show/1`. | Quick Reference (hide)