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.

Rod Johnson, Juergen Hoeller

Field Summary
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
Constructor Summary
Method Summary
protected  Class[] getClassesWithPathMapAttributes()
          Use Commons Attributes AttributeIndex to get a Collection of Class objects with the required PathMap attribute.
protected  PathMap[] getPathMapAttributes(Class handlerClass)
          Use Commons Attributes to find PathMap attributes for the given class.
Methods inherited from class org.springframework.web.servlet.handler.metadata.AbstractPathMapHandlerMapping
initApplicationContext, setAutowireMode, setAutowireModeName, setDependencyCheck
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, isContextRequired
Methods inherited from class
getApplicationContext, getMessageSourceAccessor, requiredContextClass, 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 Class[] getClassesWithPathMapAttributes()
                                           throws Exception
Use Commons Attributes AttributeIndex to get a Collection of Class objects with the required PathMap attribute. Protected so that it can be overridden during testing.

Specified by:
getClassesWithPathMapAttributes in class AbstractPathMapHandlerMapping
a array of Class objects


protected PathMap[] getPathMapAttributes(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
handlerClass - the handler class to look for
an array of PathMap objects

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