org.springframework.web.servlet.handler.metadata
Class CommonsPathMapHandlerMapping

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.metadata.AbstractPathMapHandlerMapping
                      extended by org.springframework.web.servlet.handler.metadata.CommonsPathMapHandlerMapping
All Implemented Interfaces:
ApplicationContextAware, Ordered, HandlerMapping

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.

Author:
Rod Johnson, Juergen Hoeller

Field Summary
 
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
 
Constructor Summary
CommonsPathMapHandlerMapping()
           
 
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, getHandlerMap, lookupHandler, registerHandler, setAlwaysUseFullPath, setLazyInitHandlers, setPathMatcher, setUrlDecode, setUrlPathHelper
 
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
getDefaultHandler, getHandler, getOrder, setDefaultHandler, setInterceptors, setOrder
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, isContextRequired
 
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

CommonsPathMapHandlerMapping

public CommonsPathMapHandlerMapping()
Method Detail

getClassesWithPathMapAttributes

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
Returns:
a array of Class objects
Throws:
Exception

getPathMapAttributes

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
Parameters:
handlerClass - the handler class to look for
Returns:
an array of PathMap objects


Copyright (c) 2002-2007 The Spring Framework Project.