org.springframework.web.servlet.handler
Class SimpleUrlHandlerMapping

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.handler.AbstractHandlerMapping
              extended by org.springframework.web.servlet.handler.AbstractUrlHandlerMapping
                  extended by org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
All Implemented Interfaces:
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), BeanNameUrlHandlerMapping

Field Summary
 
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
 
Fields inherited from interface org.springframework.web.servlet.HandlerMapping
PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
SimpleUrlHandlerMapping()
           
 
Method Summary
 Map 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) 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,Object> 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, getPathMatcher, getRootHandler, lookupHandler, registerHandler, registerHandler, setAlwaysUseFullPath, setLazyInitHandlers, setPathMatcher, setRootHandler, setUrlDecode, setUrlPathHelper, validateHandler
 
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
adaptInterceptor, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getOrder, initInterceptors, setDefaultHandler, setInterceptors, setOrder
 
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)

setUrlMap

public void setUrlMap(Map<String,Object> 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 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) 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