Class CommonsPathMapHandlerMapping

          extended byorg.springframework.web.servlet.handler.AbstractHandlerMapping
              extended byorg.springframework.web.servlet.handler.AbstractUrlHandlerMapping
                  extended byorg.springframework.web.servlet.handler.metadata.AbstractPathMapHandlerMapping
                      extended byorg.springframework.web.servlet.handler.metadata.CommonsPathMapHandlerMapping
All Implemented Interfaces:
ApplicationContextAware, HandlerMapping, Ordered

public class CommonsPathMapHandlerMapping
extends AbstractPathMapHandlerMapping

Subclass of AbstractPathMapHandlerMapping that recognizes Commons Attributes metadata attributes of type PathMap on application Controllers and automatically wires them into the current servlet's WebApplicationContext.

Controllers must have class attributes of the form: &64;org.springframework.web.servlet.handler.commonsattributes.PathMap("/path.cgi")
The path must be mapped to the relevant Spring DispatcherServlet in /WEB-INF/web.xml. It's possible to have multiple PathMap attributes on the one controller class.

To use this feature, you must compile application classes with Commons Attributes, and run the Commons Attributes indexer tool on your application classes, which must be in a Jar rather than in WEB-INF/classes.

Controllers instantiated by this class may have dependencies on middle tier objects, expressed via JavaBean properties or constructor arguments. These will be resolved automatically.

You will normally use this HandlerMapping with at most one DispatcherServlet in your web application. Otherwise you'll end with one instance of the mapped controller for each DispatcherServlet's context. You might want this--for example, if one's using a .pdf mapping and a PDF view, and another a JSP view, or if using different middle tier objects, but should understand the implications. All Controllers with attributes will be picked up by each DispatcherServlet's context.

$Id:,v 1.2 2004/03/18 02:46:17 trisberg Exp $
Rod Johnson

Field Summary
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
Constructor Summary
Method Summary
protected  java.util.Collection getClassNamesWithPathMapAttributes()
          Use Commons Attributes AttributeIndex to get a Collection of FQNs of classes with the required PathMap attribute.
protected  PathMap[] getPathMapAttributes(java.lang.Class handlerClass)
          Use Commons Attributes to find PathMap attributes for the given class.
Methods inherited from class org.springframework.web.servlet.handler.metadata.AbstractPathMapHandlerMapping
Methods inherited from class org.springframework.web.servlet.handler.AbstractUrlHandlerMapping
getHandlerInternal, lookupHandler, registerHandler, setAlwaysUseFullPath, setLazyInitHandlers, setUrlDecode, setUrlPathHelper
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
getDefaultHandler, getHandler, getOrder, setDefaultHandler, setInterceptors, setOrder
Methods inherited from class
getServletContext, getTempDir, getWebApplicationContext, requiredContextClass
Methods inherited from class
getApplicationContext, getMessageSourceAccessor, setApplicationContext
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public CommonsPathMapHandlerMapping()
Method Detail


protected java.util.Collection getClassNamesWithPathMapAttributes()
Use Commons Attributes AttributeIndex to get a Collection of FQNs of classes with the required PathMap attribute. Protected so that it can be overridden during testing.

Specified by:
getClassNamesWithPathMapAttributes in class AbstractPathMapHandlerMapping


protected PathMap[] getPathMapAttributes(java.lang.Class handlerClass)
Use Commons Attributes to find PathMap attributes for the given class. We know there's at least one, as the getClassNamesWithPathMapAttributes method return this class name.

Specified by:
getPathMapAttributes in class AbstractPathMapHandlerMapping

Copyright (C) 2003-2004 The Spring Framework Project.