Package: org.grails.web.util

## [Java] Class WebUtils

- org.grails.web.util.WebUtils

-     public class WebUtils
      extends org.springframework.web.utilWebUtils

  Utility methods to access commons objects and perform common web related functions for the internal framework.

  Authors:
    Graeme Rocher
  Since:
    1.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static java.lang.String` | `ASYNC_REQUEST_URI_ATTRIBUTE` |
    `static java.lang.String` | `DISPATCH_ACTION_PARAMETER` |
    `static java.lang.String` | `ENABLE_FILE_EXTENSIONS` |
    `static java.lang.String` | `EXCEPTION_ATTRIBUTE` |
    `static java.lang.String` | `GRAILS_DISPATCH_EXTENSION` |
    `static java.lang.String` | `GRAILS_SERVLET_PATH` |
    `static java.lang.String` | `LAYOUT_ATTRIBUTE` |
    `static java.lang.String` | `RENDERING_VIEW` |
    `static java.lang.String` | `SEND_ALLOW_HEADER_FOR_INVALID_HTTP_METHOD` |
    `static char` | `SLASH` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public static java.lang.String` | `addViewPrefix(java.lang.String viewName)` deprecated: Does not take into account the url converter
    `` | `public static java.lang.String` | `addViewPrefix(java.lang.String viewName, java.lang.String controllerName)`
    `` | `private static boolean` | `appendEntry(java.util.Map$Entry entry, java.lang.StringBuilder queryString, java.lang.String encoding, java.lang.String path)`
    `` | `public static boolean` | `areFileExtensionsEnabled()` Returns the value of the "grails.mime.file.extensions" setting configured in application.groovy
    `` | `public static void` | `cleanupIncludeRequestAttributes(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String, java.lang.Object> toRestore)`
    `` | `public static void` | `clearGrailsWebRequest()` Removes any GrailsWebRequest instance from the current request.
    `` | `public static void` | `exposeIncludeRequestAttributes(javax.servlet.http.HttpServletRequest request)`
    `` | `private static void` | `exposeRequestAttributeIfNotPresent(javax.servlet.ServletRequest request, java.lang.String name, java.lang.Object value)` Expose the specified request attribute if not already present.
    `` | `public static java.util.Map<java.lang.String, java.lang.Object>` | `exposeRequestAttributesAndReturnOldValues(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String, ?> attributes)`
    `` | `public static GrailsApplication` | `findApplication(javax.servlet.ServletContext servletContext)` Looks up the GrailsApplication instance
    `` | `public static org.springframework.context.ApplicationContext` | `findApplicationContext(javax.servlet.ServletContext servletContext)` Locates the ApplicationContext, returns null if not found
    `` | `public static java.util.Map<java.lang.String, java.lang.Object>` | `fromQueryString(java.lang.String queryString)` Takes a query string and returns the results as a map where the values are either a single entry or a list of values
    `` | `public static java.lang.String` | `getFormatFromURI(java.lang.String uri)` Obtains the format from the URI.
    `` | `public static java.lang.String` | `getFormatFromURI(java.lang.String uri, MimeType[] mimeTypes)` Obtains the format from the URI.
    `` | `public static java.lang.String` | `getForwardURI(javax.servlet.http.HttpServletRequest request)` Obtains the forwardURI from the request, since Grails uses a forwarding technique for URL mappings.
    `` | `public static java.lang.String` | `getRequestURIForGrailsDispatchURI(javax.servlet.http.HttpServletRequest request)` The Grails dispatch servlet maps URIs like /app/grails/example/index.dispatch.
    `` | `public static boolean` | `isAsync(javax.servlet.http.HttpServletRequest request)` Check whether the given request is a forward request
    `` | `public static boolean` | `isError(javax.servlet.http.HttpServletRequest request)` Check whether the given request is a forward request
    `` | `public static boolean` | `isForward(javax.servlet.http.HttpServletRequest request)` Check whether the given request is a forward request
    `` | `public static boolean` | `isForwardOrInclude(javax.servlet.http.HttpServletRequest request)` Check whether the given request is an include or forward request
    `` | `public static boolean` | `isInclude(javax.servlet.http.HttpServletRequest request)` Check whether the given request is an include request
    `` | `public static GrailsApplication` | `lookupApplication(javax.servlet.ServletContext servletContext)` Looks up the GrailsApplication instance
    `` | `public static org.springframework.web.servlet.HandlerInterceptor[]` | `lookupHandlerInterceptors(javax.servlet.ServletContext servletContext)` Looks up all of the HandlerInterceptor instances registered for the application
    `` | `public static org.springframework.web.servlet.ViewResolver` | `lookupViewResolver(javax.servlet.ServletContext servletContext)`
    `` | `public static org.springframework.web.servlet.ViewResolver` | `lookupViewResolver(org.springframework.context.ApplicationContext wac)`
    `` | `public static org.springframework.web.context.request.WebRequestInterceptor[]` | `lookupWebRequestInterceptors(javax.servlet.ServletContext servletContext)` Looks up all of the WebRequestInterceptor instances registered with the application
    `` | `public static org.springframework.web.servlet.View` | `resolveView(javax.servlet.http.HttpServletRequest request, java.lang.String viewName, java.lang.String controllerName, org.springframework.web.servlet.ViewResolver viewResolver)` Resolves a view for the given view name and controller name
    `` | `public org.springframework.web.servlet.View` | `resolveViewName(java.lang.String viewName, java.util.Locale locale)`
    `` | `public static GrailsWebRequest` | `retrieveGrailsWebRequest()` Returns the GrailsWebRequest associated with the current request.
    `` | `public static void` | `storeGrailsWebRequest(GrailsWebRequest webRequest)` Helper method to store the given GrailsWebRequest for the current request.
    `` | `public static java.lang.String` | `toQueryString(java.util.Map params, java.lang.String encoding)` Converts the given params into a query string started with ?
    `` | `public static java.lang.String` | `toQueryString(java.util.Map parameters)` Converts the given parameters to a query string using the default UTF-8 encoding

- - ### Field Detail

    - #### public static final java.lang.String ASYNC_REQUEST_URI_ATTRIBUTE

    - #### public static final java.lang.String DISPATCH_ACTION_PARAMETER

    - #### public static final java.lang.String ENABLE_FILE_EXTENSIONS

    - #### public static final java.lang.String EXCEPTION_ATTRIBUTE

    - #### public static final java.lang.String GRAILS_DISPATCH_EXTENSION

    - #### public static final java.lang.String GRAILS_SERVLET_PATH

    - #### public static final java.lang.String LAYOUT_ATTRIBUTE

    - #### public static final java.lang.String RENDERING_VIEW

    - #### public static final java.lang.String SEND_ALLOW_HEADER_FOR_INVALID_HTTP_METHOD

    - #### public static final char SLASH

  - ### Method Detail

    - #### @java.lang.Deprecated public static java.lang.String addViewPrefix(java.lang.String viewName)

      deprecated:
        Does not take into account the url converter

    - #### public static java.lang.String addViewPrefix(java.lang.String viewName, java.lang.String controllerName)

    - #### @java.lang.SuppressWarnings("rawtypes") private static boolean appendEntry(java.util.Map$Entry entry, java.lang.StringBuilder queryString, java.lang.String encoding, java.lang.String path)

    - #### @java.lang.SuppressWarnings("rawtypes") public static boolean areFileExtensionsEnabled()

      Returns the value of the "grails.mime.file.extensions" setting configured in application.groovy

      Returns:
        true if file extensions are enabled

    - #### public static void cleanupIncludeRequestAttributes(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String, java.lang.Object> toRestore)

    - #### public static void clearGrailsWebRequest()

      Removes any GrailsWebRequest instance from the current request.

    - #### public static void exposeIncludeRequestAttributes(javax.servlet.http.HttpServletRequest request)

    - #### private static void exposeRequestAttributeIfNotPresent(javax.servlet.ServletRequest request, java.lang.String name, java.lang.Object value)

      Expose the specified request attribute if not already present.

      Parameters:
        `request` - current servlet request
        `name` - the name of the attribute
        `value` - the suggested value of the attribute

    - #### public static java.util.Map<java.lang.String, java.lang.Object> exposeRequestAttributesAndReturnOldValues(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String, ?> attributes)

    - #### public static GrailsApplication findApplication(javax.servlet.ServletContext servletContext)

      Looks up the GrailsApplication instance

      Returns:
        The GrailsApplication instance

    - #### public static org.springframework.context.ApplicationContext findApplicationContext(javax.servlet.ServletContext servletContext)

      Locates the ApplicationContext, returns null if not found

      Parameters:
        `servletContext` - The servlet context
      Returns:
        The ApplicationContext

    - #### @java.lang.SuppressWarnings({ "unchecked", "rawtypes" }) public static java.util.Map<java.lang.String, java.lang.Object> fromQueryString(java.lang.String queryString)

      Takes a query string and returns the results as a map where the values are either a single entry or a list of values

      Parameters:
        `queryString` - The query String
      Returns:
        A map

    - #### public static java.lang.String getFormatFromURI(java.lang.String uri)

      Obtains the format from the URI. The format is the string following the . file extension in the last token of the URI. If nothing comes after the ".", this method assumes that there is no format and returns `null`.

      Parameters:
        `uri` - The URI
      Returns:
        The format or null if none

    - #### public static java.lang.String getFormatFromURI(java.lang.String uri, MimeType[] mimeTypes)

      Obtains the format from the URI. The format is the string following the . file extension in the last token of the URI. If nothing comes after the ".", this method assumes that there is no format and returns `null`.

      Parameters:
        `uri` - The URI
        `mimeTypes` - The configured mime types
      Returns:
        The format or null if none

    - #### public static java.lang.String getForwardURI(javax.servlet.http.HttpServletRequest request)

      Obtains the forwardURI from the request, since Grails uses a forwarding technique for URL mappings. The actual request URI is held within a request attribute

      Parameters:
        `request` - The request
      Returns:
        The forward URI

    - #### public static java.lang.String getRequestURIForGrailsDispatchURI(javax.servlet.http.HttpServletRequest request)

      The Grails dispatch servlet maps URIs like /app/grails/example/index.dispatch. This method infers the controller URI for the dispatch URI so that /app/grails/example/index.dispatch becomes /app/example/index

      Parameters:
        `request` - The request

    - #### public static boolean isAsync(javax.servlet.http.HttpServletRequest request)

      Check whether the given request is a forward request

      Parameters:
        `request` - The request
      Returns:
        True if it is a forward request

    - #### public static boolean isError(javax.servlet.http.HttpServletRequest request)

      Check whether the given request is a forward request

      Parameters:
        `request` - The request
      Returns:
        True if it is a forward request

    - #### public static boolean isForward(javax.servlet.http.HttpServletRequest request)

      Check whether the given request is a forward request

      Parameters:
        `request` - The request
      Returns:
        True if it is a forward request

    - #### public static boolean isForwardOrInclude(javax.servlet.http.HttpServletRequest request)

      Check whether the given request is an include or forward request

      Parameters:
        `request` - The request
      Returns:
        True if it is an include or forward request

    - #### public static boolean isInclude(javax.servlet.http.HttpServletRequest request)

      Check whether the given request is an include request

      Parameters:
        `request` - The request
      Returns:
        True if it is an include request

    - #### public static GrailsApplication lookupApplication(javax.servlet.ServletContext servletContext)

      Looks up the GrailsApplication instance

      Returns:
        The GrailsApplication instance

    - #### public static org.springframework.web.servlet.HandlerInterceptor[] lookupHandlerInterceptors(javax.servlet.ServletContext servletContext)

      Looks up all of the HandlerInterceptor instances registered for the application

      Parameters:
        `servletContext` - The ServletContext instance
      Returns:
        An array of HandlerInterceptor instances

    - #### public static org.springframework.web.servlet.ViewResolver lookupViewResolver(javax.servlet.ServletContext servletContext)

    - #### public static org.springframework.web.servlet.ViewResolver lookupViewResolver(org.springframework.context.ApplicationContext wac)

    - #### public static org.springframework.web.context.request.WebRequestInterceptor[] lookupWebRequestInterceptors(javax.servlet.ServletContext servletContext)

      Looks up all of the WebRequestInterceptor instances registered with the application

      Parameters:
        `servletContext` - The ServletContext instance
      Returns:
        An array of WebRequestInterceptor instances

    - #### public static org.springframework.web.servlet.View resolveView(javax.servlet.http.HttpServletRequest request, java.lang.String viewName, java.lang.String controllerName, org.springframework.web.servlet.ViewResolver viewResolver)

      Resolves a view for the given view name and controller name

      throws:
        Exception Thrown if an error occurs
      Parameters:
        `request` - The request
        `viewName` - The view name
        `controllerName` - The controller name
        `viewResolver` - The resolver
      Returns:
        A View or null

    - #### @java.lang.Override public org.springframework.web.servlet.View resolveViewName(java.lang.String viewName, java.util.Locale locale)

    - #### public static GrailsWebRequest retrieveGrailsWebRequest()

      Returns the GrailsWebRequest associated with the current request. This is the preferred means of accessing the GrailsWebRequest instance. If the exception is undesired, you can use RequestContextHolder.getRequestAttributes() instead.

      throws:
        IllegalStateException if this is called outside of a request.

    - #### public static void storeGrailsWebRequest(GrailsWebRequest webRequest)

      Helper method to store the given GrailsWebRequest for the current request. Ensures consistency between RequestContextHolder and the relevant request attribute. This is the preferred means of updating the current web request.

    - #### @java.lang.SuppressWarnings("rawtypes") public static java.lang.String toQueryString(java.util.Map params, java.lang.String encoding)

      Converts the given params into a query string started with ?

      throws:
        UnsupportedEncodingException If the given encoding is not supported
      Parameters:
        `params` - The params
        `encoding` - The encoding to use
      Returns:
        The query string

    - #### @java.lang.SuppressWarnings("rawtypes") public static java.lang.String toQueryString(java.util.Map parameters)

      Converts the given parameters to a query string using the default UTF-8 encoding

      throws:
        UnsupportedEncodingException If UTF-8 encoding is not supported
      Parameters:
        `parameters` - The parameters
      Returns:
        The query string