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.PortletRequestMappingPredicate
Predicate 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