Package: org.codehaus.groovy.grails.plugins.web.api

## [Java] Class ControllersApi

- org.codehaus.groovy.grails.plugins.web.api.ControllersApi

- API for each controller in a Grails application.

  Authors:
    Graeme Rocher
  Since:
    2.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected static java.lang.String` | `BIND_DATA_METHOD` |
    `protected static java.lang.String` | `RENDER_METHOD_NAME` |
    `protected static java.lang.String` | `SLASH` |
    `protected ForwardMethod` | `forwardMethod` |
    `protected RedirectDynamicMethod` | `redirect` |
    `protected RenderDynamicMethod` | `render` |
    `protected WithFormMethod` | `withFormMethod` |

  - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class CommonWebApi` | `RAW_CODEC_NAME`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `ControllersApi ()`
    `ControllersApi (GrailsPluginManager pluginManager)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.List excludes)`
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.List excludes, java.lang.String filter)`
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.Map includeExclude)`
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.lang.String filter)`
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource)`
    `java.lang.Object` | `bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.Map includeExclude, java.lang.String filter)`
    `void` | `bindData(java.lang.Object instance, java.lang.Class<T> targetType, java.util.Collection<T> collectionToPopulate, javax.servlet.ServletRequest request)`
    `void` | `bindData(java.lang.Object instance, java.lang.Class<T> targetType, java.util.Collection<T> collectionToPopulate, CollectionDataBindingSource collectionBindingSource)`
    `java.lang.Object` | `chain(java.lang.Object instance, java.util.Map args)` Invokes the chain method for the given arguments
    `java.lang.String` | `forward(java.lang.Object instance, java.util.Map params)` Forwards a request for the given parameters using the RequestDispatchers forward method
    `java.lang.String` | `getActionUri(java.lang.Object instance)` Returns the URI of the currently executing action
    `java.util.Map` | `getChainModel(java.lang.Object instance)` Obtains the chain model which is used to chain request attributes from one request to the next via flash scope
    `java.lang.String` | `getControllerUri(java.lang.Object instance)` Returns the URI of the currently executing controller
    `org.springframework.validation.Errors` | `getErrors(java.lang.Object instance)` Obtains the errors instance for the current controller
    `java.lang.reflect.Method` | `getExceptionHandlerMethodFor(java.lang.Object controllerInstance, java.lang.Class<? extends java.lang.Exception> exceptionType)`
    `org.springframework.web.servlet.ModelAndView` | `getModelAndView(java.lang.Object instance)` Obtains the ModelAndView for the currently executing controller
    `static org.springframework.context.ApplicationContext` | `getStaticApplicationContext()`
    `java.lang.String` | `getTemplateUri(java.lang.Object instance, java.lang.String name)` Obtains a URI of a template by name
    `java.lang.String` | `getViewUri(java.lang.Object instance, java.lang.String name)` Obtains a URI of a view by name
    `boolean` | `hasErrors(java.lang.Object instance)` Return true if there are an errors
    `void` | `header(java.lang.Object instance, java.lang.String headerName, java.lang.Object headerValue)` Sets a response header for the given name and value
    `static void` | `initialize(java.lang.Object instance)` Constructor used by controllers
    `java.lang.Object` | `initializeCommandObject(java.lang.Object controllerInstance, java.lang.Class type, java.lang.String commandObjectParameterName)` Initializes a command object.
    `protected java.lang.Object` | `invokeRender(java.lang.Object instance, java.lang.Object... args)`
    `java.lang.Object` | `redirect(java.lang.Object instance, java.util.Map args)` Redirects for the given arguments.
    `java.lang.Object` | `redirect(java.lang.Object instance, java.lang.Object object)` Redirects for the given arguments.
    `java.lang.Object` | `render(java.lang.Object instance, java.lang.Object o)`
    `java.lang.Object` | `render(java.lang.Object instance, java.lang.String txt)`
    `java.lang.Object` | `render(java.lang.Object instance, java.lang.CharSequence txt)`
    `java.lang.Object` | `render(java.lang.Object instance, java.util.Map args)`
    `java.lang.Object` | `render(java.lang.Object instance, groovy.lang.Closure c)`
    `java.lang.Object` | `render(java.lang.Object instance, java.util.Map args, groovy.lang.Closure c)`
    `java.lang.Object` | `render(java.lang.Object instance, java.util.Map args, java.lang.CharSequence body)`
    `void` | `setErrors(java.lang.Object instance, org.springframework.validation.Errors errors)` Sets the errors instance of the current controller
    `void` | `setGspEncoding(java.lang.String gspEncoding)`
    `void` | `setLinkGenerator(LinkGenerator linkGenerator)`
    `void` | `setModelAndView(java.lang.Object instance, org.springframework.web.servlet.ModelAndView mav)` Sets the ModelAndView of the current controller
    `void` | `setRedirectListeners(java.util.Collection<RedirectEventListener> redirectListeners)`
    `void` | `setUseJessionId(boolean useJessionId)`
    `java.lang.Object` | `withForm(java.lang.Object instance, groovy.lang.Closure callable)` Used the synchronizer token pattern to avoid duplicate form submissions

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class CommonWebApi` | `currentRequestAttributes, getActionName, getApplicationContext, getControllerClass, getControllerName, getControllerNamespace, getFlash, getGrailsApplication, getGrailsAttributes, getParams, getPluginContextPath, getRequest, getResponse, getServletContext, getSession, getWebRequest, raw, setApplicationContext, setGrailsApplication, setServletContext`
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### protected static final java.lang.String BIND_DATA_METHOD

    - #### protected static final java.lang.String RENDER_METHOD_NAME

    - #### protected static final java.lang.String SLASH

    - #### protected ForwardMethod forwardMethod

    - #### protected RedirectDynamicMethod redirect

    - #### protected RenderDynamicMethod render

    - #### protected WithFormMethod withFormMethod

  - ### Constructor Detail

    - #### public ControllersApi()

    - #### public ControllersApi(GrailsPluginManager pluginManager)

  - ### Method Detail

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.List excludes)

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.List excludes, java.lang.String filter)

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.Map includeExclude)

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.lang.String filter)

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource)

    - #### public java.lang.Object bindData(java.lang.Object instance, java.lang.Object target, java.lang.Object bindingSource, java.util.Map includeExclude, java.lang.String filter)

    - #### public void bindData(java.lang.Object instance, java.lang.Class<T> targetType, java.util.Collection<T> collectionToPopulate, javax.servlet.ServletRequest request)

    - #### public void bindData(java.lang.Object instance, java.lang.Class<T> targetType, java.util.Collection<T> collectionToPopulate, CollectionDataBindingSource collectionBindingSource)

    - #### public java.lang.Object chain(java.lang.Object instance, java.util.Map args)

      Invokes the chain method for the given arguments

      Parameters:
        `instance` - The instance
        `args` - The arguments
      Returns:
        Result of the redirect call

    - #### public java.lang.String forward(java.lang.Object instance, java.util.Map params)

      Forwards a request for the given parameters using the RequestDispatchers forward method

      Parameters:
        `instance` - The instance
        `params` - The parameters
      Returns:
        The forwarded URL

    - #### public java.lang.String getActionUri(java.lang.Object instance)

      Returns the URI of the currently executing action

      Returns:
        The action URI

    - #### public java.util.Map getChainModel(java.lang.Object instance)

      Obtains the chain model which is used to chain request attributes from one request to the next via flash scope

      Returns:
        The chainModel

    - #### public java.lang.String getControllerUri(java.lang.Object instance)

      Returns the URI of the currently executing controller

      Returns:
        The controller URI

    - #### public org.springframework.validation.Errors getErrors(java.lang.Object instance)

      Obtains the errors instance for the current controller

      Returns:
        The Errors instance

    - #### @java.lang.SuppressWarnings("unchecked") public java.lang.reflect.Method getExceptionHandlerMethodFor(java.lang.Object controllerInstance, java.lang.Class<? extends java.lang.Exception> exceptionType)

    - #### public org.springframework.web.servlet.ModelAndView getModelAndView(java.lang.Object instance)

      Obtains the ModelAndView for the currently executing controller

      Returns:
        The ModelAndView

    - #### public static org.springframework.context.ApplicationContext getStaticApplicationContext()

    - #### public java.lang.String getTemplateUri(java.lang.Object instance, java.lang.String name)

      Obtains a URI of a template by name

      Parameters:
        `name` - The name of the template
      Returns:
        The template URI

    - #### public java.lang.String getViewUri(java.lang.Object instance, java.lang.String name)

      Obtains a URI of a view by name

      Parameters:
        `name` - The name of the view
      Returns:
        The template URI

    - #### public boolean hasErrors(java.lang.Object instance)

      Return true if there are an errors

      Returns:
        true if there are errors

    - #### public void header(java.lang.Object instance, java.lang.String headerName, java.lang.Object headerValue)

      Sets a response header for the given name and value

      Parameters:
        `instance` - The instance
        `headerName` - The header name
        `headerValue` - The header value

    - #### public static void initialize(java.lang.Object instance)

      Constructor used by controllers

      Parameters:
        `instance` - The instance

    - #### public java.lang.Object initializeCommandObject(java.lang.Object controllerInstance, java.lang.Class type, java.lang.String commandObjectParameterName)

      Initializes a command object. If type is a domain class and the request body or parameters include an id, the id is used to retrieve the command object instance from the database, otherwise the no-arg constructor on type is invoke. If an attempt is made to retrieve the command object instance from the database and no corresponding record is found, null is returned. The command object is then subjected to data binding and dependency injection before being returned.

      Parameters:
        `controllerInstance` - The controller instance
        `type` - The type of the command object
      Returns:
        the initialized command object or null if the command object is a domain class, the body or parameters included an id and no corresponding record was found in the database.

    - #### protected java.lang.Object invokeRender(java.lang.Object instance, java.lang.Object... args)

    - #### public java.lang.Object redirect(java.lang.Object instance, java.util.Map args)

      Redirects for the given arguments.

      Parameters:
        `args` - The arguments
      Returns:
        null

    - #### @java.lang.SuppressWarnings("unchecked") public java.lang.Object redirect(java.lang.Object instance, java.lang.Object object)

      Redirects for the given arguments.

      Parameters:
        `object` - A domain class
      Returns:
        null

    - #### public java.lang.Object render(java.lang.Object instance, java.lang.Object o)

    - #### public java.lang.Object render(java.lang.Object instance, java.lang.String txt)

    - #### public java.lang.Object render(java.lang.Object instance, java.lang.CharSequence txt)

    - #### public java.lang.Object render(java.lang.Object instance, java.util.Map args)

    - #### public java.lang.Object render(java.lang.Object instance, groovy.lang.Closure c)

    - #### public java.lang.Object render(java.lang.Object instance, java.util.Map args, groovy.lang.Closure c)

    - #### public java.lang.Object render(java.lang.Object instance, java.util.Map args, java.lang.CharSequence body)

    - #### public void setErrors(java.lang.Object instance, org.springframework.validation.Errors errors)

      Sets the errors instance of the current controller

      Parameters:
        `errors` - The error instance

    - #### public void setGspEncoding(java.lang.String gspEncoding)

    - #### public void setLinkGenerator(LinkGenerator linkGenerator)

    - #### public void setModelAndView(java.lang.Object instance, org.springframework.web.servlet.ModelAndView mav)

      Sets the ModelAndView of the current controller

      Parameters:
        `mav` - The ModelAndView

    - #### public void setRedirectListeners(java.util.Collection<RedirectEventListener> redirectListeners)

    - #### public void setUseJessionId(boolean useJessionId)

    - #### public java.lang.Object withForm(java.lang.Object instance, groovy.lang.Closure callable)

      Used the synchronizer token pattern to avoid duplicate form submissions

      Parameters:
        `instance` - The instance
        `callable` - The closure to execute
      Returns:
        The result of the closure execution