Save This Page
Home » spring-framework-2.5.5-with-dependencies » org.springframework » web » portlet » mvc » annotation » [javadoc | source]
org.springframework.web.portlet.mvc.annotation
public class: DefaultAnnotationHandlerMapping [javadoc | source]
java.lang.Object
   org.springframework.context.support.ApplicationObjectSupport
      org.springframework.web.portlet.handler.AbstractHandlerMapping
         org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping
            org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping

All Implemented Interfaces:
    HandlerMapping, Ordered, ApplicationContextAware

Implementation of the org.springframework.web.portlet.HandlerMapping interface that maps handlers based on portlet modes expressed through the RequestMapping annotation at the type or method level.

Registered by default in org.springframework.web.portlet.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 org.springframework.web.portlet.mvc.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 org.springframework.web.portlet.mvc.SimpleControllerHandlerAdapter apply.

Fields inherited from org.springframework.context.support.ApplicationObjectSupport:
logger
Method from org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping Summary:
detectHandlerMethods,   detectHandlers,   getLookupKey,   initApplicationContext
Methods from org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping:
getHandlerInternal,   getLookupKey,   registerHandler,   registerHandler,   registerHandlers,   setLazyInitHandlers
Methods from org.springframework.web.portlet.handler.AbstractHandlerMapping:
adaptInterceptor,   extendInterceptors,   getAdaptedInterceptors,   getDefaultHandler,   getHandler,   getHandlerExecutionChain,   getHandlerInternal,   getOrder,   initApplicationContext,   initInterceptors,   setApplyWebRequestInterceptorsToRenderPhaseOnly,   setDefaultHandler,   setInterceptors,   setOrder
Methods from org.springframework.context.support.ApplicationObjectSupport:
getApplicationContext,   getMessageSourceAccessor,   initApplicationContext,   initApplicationContext,   isContextRequired,   requiredContextClass,   setApplicationContext
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping Detail:
 protected boolean detectHandlerMethods(Class handlerType,
    String beanName,
    RequestMapping typeMapping) 
    Derive portlet mode mappings from the handler's method-level mappings.
 protected  void detectHandlers() throws BeansException 
    Register all handlers specified in the Portlet mode map for the corresponding modes.
 protected Object getLookupKey(PortletRequest request) throws Exception 
    Uses the current PortletMode as lookup key.
 public  void initApplicationContext() throws BeansException 
    Calls the registerHandlers method in addition to the superclass's initialization.