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, BeanNameAware, ApplicationContextAware, Ordered, ServletContextAware, MatchableHandlerMapping, HandlerMapping
  Direct Known Subclasses:
    WebSocketHandlerMapping

      public class SimpleUrlHandlerMapping
      extends AbstractUrlHandlerMapping

  Implementation of the `HandlerMapping` interface that maps 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, 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 "*" pattern 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 on the pattern options, see the `AntPathMatcher` javadoc.

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

- - ### Field Summary

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

      `mappingsLogger`

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

      `logger`

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

      `BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, LOOKUP_PATH, 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()` Create a `SimpleUrlHandlerMapping` with default settings.
    `SimpleUrlHandlerMapping(Map<String,?> urlMap)` Create a `SimpleUrlHandlerMapping` using the supplied URL map.
    `SimpleUrlHandlerMapping(Map<String,?> urlMap, int order)` Create a `SimpleUrlHandlerMapping` using the supplied URL map and order.

  - ### Method Summary

    All Methods Instance Methods Concrete 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, getPathPatternHandlerMap, getRootHandler, lookupHandler, lookupHandler, match, registerHandler, registerHandler, setLazyInitHandlers, setPatternParser, setRootHandler, setUseTrailingSlashMatch, supportsTypeLevelMappings, useTrailingSlashMatch, validateHandler`

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

      `adaptInterceptor, detectMappedInterceptors, extendInterceptors, formatMappingName, getAdaptedInterceptors, getCorsConfiguration, getCorsConfigurationSource, getCorsHandlerExecutionChain, getCorsProcessor, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getPatternParser, getUrlPathHelper, hasCorsConfigurationSource, initInterceptors, initLookupPath, setAlwaysUseFullPath, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper, usesPathPatterns`

    - ### 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, obtainApplicationContext, requiredContextClass, setApplicationContext`

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

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

    - ### Methods inherited from interface org.springframework.web.servlet.handler.MatchableHandlerMapping

      `getPatternParser`

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

      `getHandler, usesPathPatterns`

- - ### Constructor Detail

    - #### SimpleUrlHandlerMapping

          public SimpleUrlHandlerMapping()

      Create a `SimpleUrlHandlerMapping` with default settings.

    - #### SimpleUrlHandlerMapping

          public SimpleUrlHandlerMapping(Map<String,?> urlMap)

      Create a `SimpleUrlHandlerMapping` using the supplied URL map.
      Parameters:
        `urlMap` - map with URL paths as keys and handler beans (or handler bean names) as values
      Since:
        5.2
      See Also:
        `setUrlMap(Map)`

    - #### SimpleUrlHandlerMapping

          public SimpleUrlHandlerMapping(Map<String,?> urlMap,
                                         int order)

      Create a `SimpleUrlHandlerMapping` using the supplied URL map and order.
      Parameters:
        `urlMap` - map with URL paths as keys and handler beans (or handler bean names) as values
        `order` - the order value for this `SimpleUrlHandlerMapping`
      Since:
        5.2
      See Also:
        `setUrlMap(Map)`, `AbstractHandlerMapping.setOrder(int)`

  - ### 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` - a 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