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

java.lang.Object
  extended byorg.springframework.context.support.ApplicationObjectSupport
      extended byorg.springframework.web.context.support.WebApplicationObjectSupport
          extended byorg.springframework.web.servlet.handler.AbstractHandlerMapping
              extended byorg.springframework.web.servlet.handler.AbstractUrlHandlerMapping
                  extended byorg.springframework.web.servlet.handler.metadata.AbstractPathMapHandlerMapping
All Implemented Interfaces:
ApplicationContextAware, HandlerMapping, Ordered
Direct Known Subclasses:
CommonsPathMapHandlerMapping

public abstract class AbstractPathMapHandlerMapping
extends AbstractUrlHandlerMapping

Abstract implementation of the HandlerMapping interface that recognizes metadata attributes of type PathMap on application Controllers and automatically wires them into the current servlet's WebApplicationContext.

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.

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.

Version:
$Id: AbstractPathMapHandlerMapping.java,v 1.6 2004/03/18 02:46:17 trisberg Exp $
Author:
Rod Johnson

Field Summary
 
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
logger
 
Constructor Summary
AbstractPathMapHandlerMapping()
           
 
Method Summary
protected abstract  java.util.Collection getClassNamesWithPathMapAttributes()
          Use an attribute index to get a Collection of FQNs of classes with the required PathMap attribute.
protected abstract  PathMap[] getPathMapAttributes(java.lang.Class handlerClass)
          Use Attributes API to find PathMap attributes for the given class.
 void initApplicationContext()
          Look for all classes with a PathMap class attribute, instantiate them in the owning ApplicationContext and register them as MVC handlers usable by the current DispatcherServlet.
 
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 org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, requiredContextClass
 
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractPathMapHandlerMapping

public AbstractPathMapHandlerMapping()
Method Detail

initApplicationContext

public void initApplicationContext()
                            throws ApplicationContextException
Look for all classes with a PathMap class attribute, instantiate them in the owning ApplicationContext and register them as MVC handlers usable by the current DispatcherServlet.

Overrides:
initApplicationContext in class ApplicationObjectSupport
Throws:
ApplicationContextException - in case of initialization errors
See Also:
ApplicationObjectSupport.initApplicationContext()

getClassNamesWithPathMapAttributes

protected abstract java.util.Collection getClassNamesWithPathMapAttributes()
Use an attribute index to get a Collection of FQNs of classes with the required PathMap attribute.


getPathMapAttributes

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



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