org.springframework.web.portlet.mvc.annotation
Class DefaultAnnotationHandlerMapping
java.lang.Object
   org.springframework.context.support.ApplicationObjectSupport
org.springframework.context.support.ApplicationObjectSupport
       org.springframework.web.portlet.handler.AbstractHandlerMapping
org.springframework.web.portlet.handler.AbstractHandlerMapping
           org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping
org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping
               org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping
org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping
- All Implemented Interfaces: 
- ApplicationContextAware, Ordered, HandlerMapping
- public class DefaultAnnotationHandlerMapping 
- extends AbstractMapBasedHandlerMapping
Implementation of the HandlerMapping
 interface that maps handlers based on portlet modes expressed through the
 RequestMapping annotation at the type or method level.
 
Registered by default in DispatcherPortlet
 on Java 5+. NOTE: If you define custom HandlerMapping beans in your
 DispatcherPortlet context, you need to add a DefaultAnnotationHandlerMapping bean
 explicitly, since custom HandlerMapping beans replace the default mapping strategies.
 Defining a DefaultAnnotationHandlerMapping also allows for registering custom
 interceptors:
 
 <bean class="org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping">
   <property name="interceptors">
     ...
   </property>
 </bean>
 Annotated controllers are usually marked with the Controller stereotype
 at the type level. This is not strictly necessary when RequestMapping is
 applied at the type level (since such a handler usually implements the
 Controller interface). However,
 Controller is required for detecting RequestMapping annotations
 at the method level.
 NOTE: Method-level mappings are only allowed to narrow the mapping
 expressed at the class level (if any). Portlet modes need to uniquely map onto
 specific handler beans, with any given portlet mode only allowed to be mapped
 onto one specific handler bean (not spread across multiple handler beans).
 It is strongly recommended to co-locate related handler methods into the same bean.
 
The AnnotationMethodHandlerAdapter is responsible for processing
 annotated handler methods, as mapped by this HandlerMapping. For
 RequestMapping at the type level, specific HandlerAdapters such as
 SimpleControllerHandlerAdapter apply.
- Since:
- 2.5
- Author:
- Juergen Hoeller
- See Also:
- RequestMapping,- AnnotationMethodHandlerAdapter
 
 
 
 
 
 
| Method Summary | 
| protected  boolean | detectHandlerMethods(Class handlerType,
                     String beanName,
                     RequestMapping typeMapping)Derive portlet mode mappings from the handler's method-level mappings.
 | 
| protected  void | detectHandlers()Register all handlers specified in the Portlet mode map for the corresponding modes.
 | 
| protected  Object | getLookupKey(javax.portlet.PortletRequest request)Uses the current PortletMode as lookup key.
 | 
|  void | initApplicationContext()Calls the
 registerHandlersmethod in addition
 to the superclass's initialization. | 
 
 
| Methods inherited from class org.springframework.web.portlet.handler.AbstractHandlerMapping | 
| adaptInterceptor, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getOrder, initInterceptors, setApplyWebRequestInterceptorsToRenderPhaseOnly, setDefaultHandler, setInterceptors, setOrder | 
 
 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
DefaultAnnotationHandlerMapping
public DefaultAnnotationHandlerMapping()
initApplicationContext
public void initApplicationContext()
                            throws BeansException
- Calls the registerHandlersmethod in addition
 to the superclass's initialization.
 
- 
- Overrides:
- initApplicationContextin class- AbstractHandlerMapping
 
- 
- Throws:
- ApplicationContextException- in case of initialization errors
- BeansException- if thrown by ApplicationContext methods
- See Also:
- detectHandlers()
 
detectHandlers
protected void detectHandlers()
                       throws BeansException
- Register all handlers specified in the Portlet mode map for the corresponding modes.
 
- 
- Throws:
- BeansException- if the handler couldn't be registered
 
detectHandlerMethods
protected boolean detectHandlerMethods(Class handlerType,
                                       String beanName,
                                       RequestMapping typeMapping)
- Derive portlet mode mappings from the handler's method-level mappings.
 
- 
- Parameters:
- handlerType- the handler type to introspect
- beanName- the name of the bean introspected
- typeMapping- the type level mapping (if any)
- Returns:
- trueif at least 1 handler method has been registered;- falseotherwise
 
getLookupKey
protected Object getLookupKey(javax.portlet.PortletRequest request)
                       throws Exception
- Uses the current PortletMode as lookup key.
 
- 
- Specified by:
- getLookupKeyin class- AbstractMapBasedHandlerMapping
 
- 
- Parameters:
- request- current portlet request
- Returns:
- the lookup key (never null)
- Throws:
- Exception- if key computation failed
 
Copyright © 2002-2008 The Spring Framework.