org.springframework.web.servlet.handler

## Class SimpleUrlHandlerMapping

- java.lang.Object
- - org.springframework.context.support.ApplicationObjectSupport
  - - org.springframework.web.context.support.WebApplicationObjectSupport
    - - org.springframework.web.servlet.handler.AbstractHandlerMapping
      - - org.springframework.web.servlet.handler.AbstractUrlHandlerMapping
        - - org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

- All Implemented Interfaces:
    Aware, ApplicationContextAware, Ordered, ServletContextAware, HandlerMapping

      public class SimpleUrlHandlerMapping
      extends AbstractUrlHandlerMapping

  Implementation of the `HandlerMapping` interface to map from URLs to request handler beans. Supports both mapping to bean instances and mapping to bean names; the latter is required for non-singleton handlers.

  The "urlMap" property is suitable for populating the handler map with bean references, e.g. via the map element in XML bean definitions.

  Mappings to bean names can be set via the "mappings" property, in a form accepted by the `java.util.Properties` class, like as follows:
  `/welcome.html=ticketController /show.html=ticketController`
  The syntax is `PATH=HANDLER_BEAN_NAME`. If the path doesn't begin with a slash, one is prepended.

  Supports direct matches (given "/test" -> registered "/test") and "*" matches (given "/test" -> registered "/t*"). Note that the default is to map within the current servlet mapping if applicable; see the `"alwaysUseFullPath"` property for details. For details on the pattern options, see the `AntPathMatcher` javadoc.

  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `setMappings(java.util.Properties)`, `setUrlMap(java.util.Map<java.lang.String, ?>)`, `BeanNameUrlHandlerMapping`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.context.support.ApplicationObjectSupport

      `logger`

    - ### Fields inherited from interface org.springframework.web.servlet.HandlerMapping

      `BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE`

    - ### Fields inherited from interface org.springframework.core.Ordered

      `HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleUrlHandlerMapping()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Map<String,?>` | `getUrlMap()` Allow Map access to the URL path mappings, with the option to add or override specific entries.
    `void` | `initApplicationContext()` Calls the `registerHandlers(java.util.Map<java.lang.String, java.lang.Object>)` method in addition to the superclass's initialization.
    `protected void` | `registerHandlers(Map<String,Object> urlMap)` Register all handlers specified in the URL map for the corresponding paths.
    `void` | `setMappings(Properties mappings)` Map URL paths to handler bean names.
    `void` | `setUrlMap(Map<String,?> urlMap)` Set a Map with URL paths as keys and handler beans (or handler bean names) as values.

    - ### Methods inherited from class org.springframework.web.servlet.handler.AbstractUrlHandlerMapping

      `buildPathExposingHandler, exposePathWithinMapping, exposeUriTemplateVariables, getHandlerInternal, getHandlerMap, getRootHandler, lookupHandler, registerHandler, registerHandler, setLazyInitHandlers, setRootHandler, supportsTypeLevelMappings, validateHandler`

    - ### Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping

      `adaptInterceptor, detectMappedInterceptors, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getUrlPathHelper, initInterceptors, setAlwaysUseFullPath, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper`

    - ### Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport

      `getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext`

    - ### Methods inherited from class org.springframework.context.support.ApplicationObjectSupport

      `getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleUrlHandlerMapping

          public SimpleUrlHandlerMapping()

  - ### Method Detail

    - #### setMappings

          public void setMappings(Properties mappings)

      Map URL paths to handler bean names. This is the typical way of configuring this HandlerMapping.

      Supports direct URL matches and Ant-style pattern matches. For syntax details, see the `AntPathMatcher` javadoc.

      Parameters:
        `mappings` - properties with URLs as keys and bean names as values
      See Also:
        `setUrlMap(java.util.Map<java.lang.String, ?>)`

    - #### setUrlMap

          public void setUrlMap(Map<String,?> urlMap)

      Set a Map with URL paths as keys and handler beans (or handler bean names) as values. Convenient for population with bean references.

      Supports direct URL matches and Ant-style pattern matches. For syntax details, see the `AntPathMatcher` javadoc.

      Parameters:
        `urlMap` - map with URLs as keys and beans as values
      See Also:
        `setMappings(java.util.Properties)`

    - #### getUrlMap

          public Map<String,?> getUrlMap()

      Allow Map access to the URL path mappings, with the option to add or override specific entries.

      Useful for specifying entries directly, for example via "urlMap[myKey]". This is particularly useful for adding or overriding entries in child bean definitions.

    - #### initApplicationContext

          public void initApplicationContext()
                                      throws BeansException

      Calls the `registerHandlers(java.util.Map<java.lang.String, java.lang.Object>)` method in addition to the superclass's initialization.
      Overrides:
        `initApplicationContext` in class `AbstractHandlerMapping`
      Throws:
        `ApplicationContextException` - in case of initialization errors
        `BeansException` - if thrown by ApplicationContext methods
      See Also:
        `AbstractHandlerMapping.extendInterceptors(java.util.List)`, `AbstractHandlerMapping.initInterceptors()`

    - #### registerHandlers

          protected void registerHandlers(Map<String,Object> urlMap)
                                   throws BeansException

      Register all handlers specified in the URL map for the corresponding paths.
      Parameters:
        `urlMap` - Map with URL paths as keys and handler beans or bean names as values
      Throws:
        `BeansException` - if a handler couldn't be registered
        `IllegalStateException` - if there is a conflicting handler registered