(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")

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

  • 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 will prefix the link target address with the value of the grails.serverURL property from application.groovy, or http://localhost:<port> if there is no value in application.groovy and not running in the production environment.
  • 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