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