public abstract class AbstractMapBasedHandlerMapping<K> extends AbstractHandlerMapping
HandlerMapping
 implementations that rely on a map which caches handler objects per lookup key.
 Supports arbitrary lookup keys, and automatically resolves handler bean names
 into handler bean instances.getLookupKey(javax.portlet.PortletRequest), 
registerHandler(Object, Object)| Modifier and Type | Class and Description | 
|---|---|
| protected static interface  | AbstractMapBasedHandlerMapping.PortletRequestMappingPredicatePredicate interface for determining a match with a given request. | 
loggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description | 
|---|
| AbstractMapBasedHandlerMapping() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected Object | getHandlerInternal(PortletRequest request)Determines a handler for the computed lookup key for the given request. | 
| protected abstract K | getLookupKey(PortletRequest request)Build a lookup key for the given request. | 
| protected void | registerHandler(K lookupKey,
               Object handler)Register the given handler instance for the given parameter value. | 
| protected void | registerHandler(K lookupKey,
               Object handler,
               AbstractMapBasedHandlerMapping.PortletRequestMappingPredicate predicate)Register the given handler instance for the given parameter value. | 
| protected void | registerHandlers(Map<K,?> handlerMap)Register all handlers specified in the Portlet mode map for the corresponding modes. | 
| void | setLazyInitHandlers(boolean lazyInitHandlers)Set whether to lazily initialize handlers. | 
adaptInterceptor, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getOrder, initApplicationContext, initInterceptors, setApplyWebRequestInterceptorsToRenderPhaseOnly, setDefaultHandler, setInterceptors, setOrdergetApplicationContext, getMessageSourceAccessor, initApplicationContext, isContextRequired, requiredContextClass, setApplicationContextpublic void setLazyInitHandlers(boolean lazyInitHandlers)
If you want to allow your handlers to be lazily initialized, make them "lazy-init" and set this flag to true. Just making them "lazy-init" will not work, as they are initialized through the references from the handler mapping in this case.
protected Object getHandlerInternal(PortletRequest request) throws Exception
getHandlerInternal in class AbstractHandlerMappingrequest - current portlet requestnull if none foundException - if there is an internal errorgetLookupKey(javax.portlet.PortletRequest)protected abstract K getLookupKey(PortletRequest request) throws Exception
request - current portlet requestnull)Exception - if key computation failedprotected void registerHandlers(Map<K,?> handlerMap) throws BeansException
handlerMap - Map with lookup keys as keys and handler beans or bean names as valuesBeansException - if the handler couldn't be registeredprotected void registerHandler(K lookupKey, Object handler) throws BeansException, IllegalStateException
lookupKey - the key to map the handler ontohandler - the handler instance or handler bean name String
 (a bean name will automatically be resolved into the corresponding handler bean)BeansException - if the handler couldn't be registeredIllegalStateException - if there is a conflicting handler registeredprotected void registerHandler(K lookupKey, Object handler, AbstractMapBasedHandlerMapping.PortletRequestMappingPredicate predicate) throws BeansException, IllegalStateException
lookupKey - the key to map the handler ontohandler - the handler instance or handler bean name String
 (a bean name will automatically be resolved into the corresponding handler bean)predicate - a predicate object for this handler (may be null),
 determining a match with the primary lookup keyBeansException - if the handler couldn't be registeredIllegalStateException - if there is a conflicting handler registered