WebUtils (Grails 2.3.8)
Date: 2014-04-24

Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.groovy.grails.web.util
[Java] Class WebUtils

    java.lang.Object
      org.springframework.web.util.WebUtils
          org.codehaus.groovy.grails.web.util.WebUtils

    public class WebUtils
    extends org.springframework.web.util.WebUtils

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

Authors:
  Graeme Rocher

Since:
  1.0

Field Summary
`static java.lang.String` | `DISPATCH_ACTION_PARAMETER`
`static java.lang.String` | `ENABLE_FILE_EXTENSIONS`
`static java.lang.String` | `SEND_ALLOW_HEADER_FOR_INVALID_HTTP_METHOD`
`static char` | `SLASH`

Fields inherited from class org.springframework.web.util.WebUtils
INCLUDE_REQUEST_URI_ATTRIBUTE, INCLUDE_CONTEXT_PATH_ATTRIBUTE, INCLUDE_SERVLET_PATH_ATTRIBUTE, INCLUDE_PATH_INFO_ATTRIBUTE, INCLUDE_QUERY_STRING_ATTRIBUTE, FORWARD_REQUEST_URI_ATTRIBUTE, FORWARD_CONTEXT_PATH_ATTRIBUTE, FORWARD_SERVLET_PATH_ATTRIBUTE, FORWARD_PATH_INFO_ATTRIBUTE, FORWARD_QUERY_STRING_ATTRIBUTE, ERROR_STATUS_CODE_ATTRIBUTE, ERROR_EXCEPTION_TYPE_ATTRIBUTE, ERROR_MESSAGE_ATTRIBUTE, ERROR_EXCEPTION_ATTRIBUTE, ERROR_REQUEST_URI_ATTRIBUTE, ERROR_SERVLET_NAME_ATTRIBUTE, CONTENT_TYPE_CHARSET_PREFIX, DEFAULT_CHARACTER_ENCODING, TEMP_DIR_CONTEXT_ATTRIBUTE, HTML_ESCAPE_CONTEXT_PARAM, WEB_APP_ROOT_KEY_PARAM, DEFAULT_WEB_APP_ROOT_KEY, SUBMIT_IMAGE_SUFFIXES, SESSION_MUTEX_ATTRIBUTE

Method Summary
`static java.lang.String` | `addViewPrefix(java.lang.String viewName)`
`static java.lang.String` | `addViewPrefix(java.lang.String viewName, java.lang.String controllerName)`
`static boolean` | `areFileExtensionsEnabled()` Returns the value of the "grails.mime.file.extensions" setting configured in COnfig.groovy
`static java.lang.String` | `buildDispatchUrlForMapping(UrlMappingInfo info)` Constructs the URI to forward to using the given request and UrlMappingInfo instance
`static void` | `clearGrailsWebRequest()`
`static void` | `exposeIncludeRequestAttributes(javax.servlet.http.HttpServletRequest request)` Expose the current request URI and paths as javax.servlet.http.HttpServletRequest attributes under the keys defined in the Servlet 2.4 specification, for containers that implement 2.3 or an earlier version of the Servlet API: `javax.servlet.forward.request_uri`, `javax.servlet.forward.context_path`, `javax.servlet.forward.servlet_path`, `javax.servlet.forward.path_info`, `javax.servlet.forward.query_string`.
`static org.springframework.context.ApplicationContext` | `findApplicationContext(javax.servlet.ServletContext servletContext)` Locates the ApplicationContext, returns null if not found
`static java.lang.String` | `forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info)` @see org.codehaus.groovy.grails.web.util.WebUtils#forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.codehaus.groovy.grails.web.mapping.UrlMappingInfo, java.util.Map)
`static java.lang.String` | `forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model)` @see #forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.codehaus.groovy.grails.web.mapping.UrlMappingInfo, java.util.Map, boolean)
`static java.lang.String` | `forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model, boolean includeParams)` Forwards a request for the given UrlMappingInfo object and model
`static java.util.Map` | `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
`static GrailsClass` | `getConfiguredControllerForUrlMappingInfo(GrailsWebRequest webRequest, UrlMappingInfo info, UrlConverter urlConverterToUse, GrailsApplication grailsApplicationToUse)`
`static java.lang.String` | `getControllerFeatureURI(UrlConverter urlConverter, java.lang.String controller, java.lang.String action)`
`static ControllerCacheKey` | `getFeatureId(UrlConverter urlConverter, UrlMappingInfo info)`
`static java.lang.String` | `getFormatFromURI(java.lang.String uri)` Obtains the format from the URI.
`static java.lang.String` | `getFormatFromURI(java.lang.String uri, MimeType[] mimeTypes)`
`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.
`static java.lang.String` | `getRequestURIForGrailsDispatchURI(javax.servlet.http.HttpServletRequest request)` The Grails dispatch servlet maps URIs like /app/grails/example/index.dispatch.
`static IncludedContent` | `includeForUrl(java.lang.String includeUrl, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.util.Map model)` Includes the given URL returning the resulting content as a String
`static IncludedContent` | `includeForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model)` Include whatever the given UrlMappingInfo maps to within the current response
`static GrailsApplication` | `lookupApplication(javax.servlet.ServletContext servletContext)` Looks up the GrailsApplication instance
`static org.springframework.web.servlet.HandlerInterceptor[]` | `lookupHandlerInterceptors(javax.servlet.ServletContext servletContext)` Looks up all of the HandlerInterceptor instances registered for the application
`static UrlMappingsHolder` | `lookupUrlMappings(javax.servlet.ServletContext servletContext)` Looks up the UrlMappingsHolder instance
`static org.springframework.web.servlet.ViewResolver` | `lookupViewResolver(javax.servlet.ServletContext servletContext)`
`static org.springframework.web.servlet.ViewResolver` | `lookupViewResolver(org.springframework.context.ApplicationContext wac)`
`static org.springframework.web.context.request.WebRequestInterceptor[]` | `lookupWebRequestInterceptors(javax.servlet.ServletContext servletContext)` Looks up all of the WebRequestInterceptor instances registered with the application
`protected static void` | `passControllerForForwardedRequest(GrailsWebRequest webRequest, UrlMappingInfo info)`
`static GrailsClass` | `passControllerForUrlMappingInfoInRequest(GrailsWebRequest webRequest, UrlMappingInfo info, UrlConverter urlConverterToUse, GrailsApplication grailsApplicationToUse)`
`static org.springframework.web.servlet.View` | `resolveView(javax.servlet.http.HttpServletRequest request, UrlMappingInfo info, java.lang.String viewName, org.springframework.web.servlet.ViewResolver viewResolver)` Resolves a view for the given view and UrlMappingInfo instance
`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
`static GrailsWebRequest` | `retrieveGrailsWebRequest()` Returns the GrailsWebRequest associated with the current request.
`static void` | `storeGrailsWebRequest(GrailsWebRequest webRequest)`
`static java.lang.String` | `toQueryString(java.util.Map params, java.lang.String encoding)` Converts the given params into a query string started with ?
`static java.lang.String` | `toQueryString(java.util.Map parameters)` Converts the given parameters to a query string using the default UTF-8 encoding

Methods inherited from class org.springframework.web.util.WebUtils
org.springframework.web.util.WebUtils#getTempDir(javax.servlet.ServletContext), org.springframework.web.util.WebUtils#getSessionId(javax.servlet.http.HttpServletRequest), org.springframework.web.util.WebUtils#isDefaultHtmlEscape(javax.servlet.ServletContext), org.springframework.web.util.WebUtils#getDefaultHtmlEscape(javax.servlet.ServletContext), org.springframework.web.util.WebUtils#getNativeRequest(javax.servlet.ServletRequest, java.lang.Class), org.springframework.web.util.WebUtils#getParametersStartingWith(javax.servlet.ServletRequest, java.lang.String), org.springframework.web.util.WebUtils#exposeForwardRequestAttributes(javax.servlet.http.HttpServletRequest), org.springframework.web.util.WebUtils#isIncludeRequest(javax.servlet.ServletRequest), org.springframework.web.util.WebUtils#getSessionMutex(javax.servlet.http.HttpSession), org.springframework.web.util.WebUtils#getNativeResponse(javax.servlet.ServletResponse, java.lang.Class), org.springframework.web.util.WebUtils#setSessionAttribute(javax.servlet.http.HttpServletRequest, java.lang.String, java.lang.Object), org.springframework.web.util.WebUtils#getSessionAttribute(javax.servlet.http.HttpServletRequest, java.lang.String), org.springframework.web.util.WebUtils#setWebAppRootSystemProperty(javax.servlet.ServletContext), org.springframework.web.util.WebUtils#removeWebAppRootSystemProperty(javax.servlet.ServletContext), org.springframework.web.util.WebUtils#getRequiredSessionAttribute(javax.servlet.http.HttpServletRequest, java.lang.String), org.springframework.web.util.WebUtils#getOrCreateSessionAttribute(javax.servlet.http.HttpSession, java.lang.String, java.lang.Class), org.springframework.web.util.WebUtils#exposeRequestAttributes(javax.servlet.ServletRequest, java.util.Map), org.springframework.web.util.WebUtils#hasSubmitParameter(javax.servlet.ServletRequest, java.lang.String), org.springframework.web.util.WebUtils#findParameterValue(javax.servlet.ServletRequest, java.lang.String), org.springframework.web.util.WebUtils#findParameterValue(java.util.Map, java.lang.String), org.springframework.web.util.WebUtils#getTargetPage(javax.servlet.ServletRequest, java.lang.String, int), org.springframework.web.util.WebUtils#extractFilenameFromUrlPath(java.lang.String), org.springframework.web.util.WebUtils#extractFullFilenameFromUrlPath(java.lang.String), org.springframework.web.util.WebUtils#parseMatrixVariables(java.lang.String), org.springframework.web.util.WebUtils#getRealPath(javax.servlet.ServletContext, java.lang.String), org.springframework.web.util.WebUtils#clearErrorRequestAttributes(javax.servlet.http.HttpServletRequest), org.springframework.web.util.WebUtils#exposeErrorRequestAttributes(javax.servlet.http.HttpServletRequest, java.lang.Throwable, java.lang.String), org.springframework.web.util.WebUtils#getCookie(javax.servlet.http.HttpServletRequest, java.lang.String), org.springframework.web.util.WebUtils#wait(long, int), org.springframework.web.util.WebUtils#wait(long), org.springframework.web.util.WebUtils#wait(), org.springframework.web.util.WebUtils#equals(java.lang.Object), org.springframework.web.util.WebUtils#toString(), org.springframework.web.util.WebUtils#hashCode(), org.springframework.web.util.WebUtils#getClass(), org.springframework.web.util.WebUtils#notify(), org.springframework.web.util.WebUtils#notifyAll()

Methods inherited from 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

### DISPATCH_ACTION_PARAMETER

    public static final java.lang.String DISPATCH_ACTION_PARAMETER

### ENABLE_FILE_EXTENSIONS

    public static final java.lang.String ENABLE_FILE_EXTENSIONS

### SEND_ALLOW_HEADER_FOR_INVALID_HTTP_METHOD

    public static final java.lang.String SEND_ALLOW_HEADER_FOR_INVALID_HTTP_METHOD

### SLASH

    public static final char SLASH

Method Detail

### addViewPrefix

    public static java.lang.String addViewPrefix(java.lang.String viewName)

### addViewPrefix

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

### areFileExtensionsEnabled

    @java.lang.SuppressWarnings/**
    public static boolean areFileExtensionsEnabled()

  Returns the value of the "grails.mime.file.extensions" setting configured in COnfig.groovy
  Returns:
    true if file extensions are enabled

### buildDispatchUrlForMapping

    public static java.lang.String buildDispatchUrlForMapping(UrlMappingInfo info)

  Constructs the URI to forward to using the given request and UrlMappingInfo instance
  Parameters:
    `info` - The UrlMappingInfo
  Returns:
    The URI to forward to

### clearGrailsWebRequest

    public static void clearGrailsWebRequest()

### exposeIncludeRequestAttributes

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

  Expose the current request URI and paths as javax.servlet.http.HttpServletRequest attributes under the keys defined in the Servlet 2.4 specification, for containers that implement 2.3 or an earlier version of the Servlet API: `javax.servlet.forward.request_uri`, `javax.servlet.forward.context_path`, `javax.servlet.forward.servlet_path`, `javax.servlet.forward.path_info`, `javax.servlet.forward.query_string`.

  Does not override values if already present, to not cause conflicts with the attributes exposed by Servlet 2.4+ containers themselves.

  Parameters:
    `request` - current servlet request

### findApplicationContext

    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

### forwardRequestForUrlMappingInfo

    public static java.lang.String forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info)

  See Also:
    WebUtils.forwardRequestForUrlMappingInfo

### forwardRequestForUrlMappingInfo

    @java.lang.SuppressWarnings("rawtypes")
    public static java.lang.String forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model)

  See Also:
    forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.codehaus.groovy.grails.web.mapping.UrlMappingInfo, java.util.Map, boolean)

### forwardRequestForUrlMappingInfo

    @java.lang.SuppressWarnings({ "unchecked", "rawtypes" })
    public static java.lang.String forwardRequestForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model, boolean includeParams)

  Forwards a request for the given UrlMappingInfo object and model
  throws:
    ServletException Thrown when an error occurs executing the forward
  throws:
    IOException Thrown when an error occurs executing the forward
  Parameters:
    `request` - The request
    `response` - The response
    `info` - The UrlMappingInfo object
    `model` - The Model
    `includeParams` - Whether to include any request parameters
  Returns:
    The URI forwarded too

### fromQueryString

    @java.lang.SuppressWarningsString[] pairs = queryString.split("&");
    public static java.util.Map 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

### getConfiguredControllerForUrlMappingInfo

    @java.lang.Deprecatedif (controller != null) {
    public static GrailsClass getConfiguredControllerForUrlMappingInfo(GrailsWebRequest webRequest, UrlMappingInfo info, UrlConverter urlConverterToUse, GrailsApplication grailsApplicationToUse)

### getControllerFeatureURI

    public static java.lang.String getControllerFeatureURI(UrlConverter urlConverter, java.lang.String controller, java.lang.String action)

### getFeatureId

    public static ControllerCacheKey getFeatureId(UrlConverter urlConverter, UrlMappingInfo info)

### getFormatFromURI

    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

### getFormatFromURI

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

### getForwardURI

    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

### getRequestURIForGrailsDispatchURI

    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

### includeForUrl

    @java.lang.SuppressWarningsresponse = wrapped != null ? wrapped : response;
    public static IncludedContent includeForUrl(java.lang.String includeUrl, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.util.Map model)

  Includes the given URL returning the resulting content as a String
  Parameters:
    `includeUrl` - The URL to include
    `request` - The request
    `response` - The response
    `model` - The model
  Returns:
    The content

### includeForUrlMappingInfo

    @java.lang.SuppressWarningsfinal GrailsWebRequest webRequest = GrailsWebRequest.lookup(request);
    public static IncludedContent includeForUrlMappingInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, UrlMappingInfo info, java.util.Map model)

  Include whatever the given UrlMappingInfo maps to within the current response
  Parameters:
    `request` - The request
    `response` - The response
    `info` - The UrlMappingInfo
    `model` - The model
  Returns:
    The included content

### lookupApplication

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

  Looks up the GrailsApplication instance
  Returns:
    The GrailsApplication instance

### lookupHandlerInterceptors

    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

### lookupUrlMappings

    public static UrlMappingsHolder lookupUrlMappings(javax.servlet.ServletContext servletContext)

  Looks up the UrlMappingsHolder instance
  Parameters:
    `servletContext` - The ServletContext object
  Returns:
    The UrlMappingsHolder

### lookupViewResolver

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

### lookupViewResolver

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

### lookupWebRequestInterceptors

    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

### passControllerForForwardedRequest

    protected static void passControllerForForwardedRequest(GrailsWebRequest webRequest, UrlMappingInfo info)

### passControllerForUrlMappingInfoInRequest

    public static GrailsClass passControllerForUrlMappingInfoInRequest(GrailsWebRequest webRequest, UrlMappingInfo info, UrlConverter urlConverterToUse, GrailsApplication grailsApplicationToUse)

### resolveView

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

  Resolves a view for the given view and UrlMappingInfo instance
  throws:
    Exception
  Parameters:
    `request` - The request
    `info` - The info
    `viewName` - The view name
    `viewResolver` - The view resolver
  Returns:
    The view or null

### resolveView

    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

### retrieveGrailsWebRequest

    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.

### storeGrailsWebRequest

    public static void storeGrailsWebRequest(GrailsWebRequest webRequest)

### toQueryString

    @java.lang.SuppressWarningsMap.Entry entry = (Map.Entry) i.next();
    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

### toQueryString

    @java.lang.SuppressWarningsprivate static boolean appendEntry(Map.Entry entry, StringBuilder queryString, String encoding, String path) throws UnsupportedEncodingException {
    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

Groovy Documentation