|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.context.support.ApplicationObjectSupport
org.springframework.web.portlet.handler.AbstractHandlerMapping
public abstract class AbstractHandlerMapping
Abstract base class for HandlerMapping
implementations. Supports ordering, a default handler, and handler interceptors.
getHandlerInternal(PortletRequest)
,
setDefaultHandler(java.lang.Object)
,
setInterceptors(java.lang.Object[])
,
HandlerInterceptor
Field Summary | |
---|---|
private HandlerInterceptor[] |
adaptedInterceptors
|
private boolean |
applyWebRequestInterceptorsToRenderPhaseOnly
|
private java.lang.Object |
defaultHandler
|
private java.util.List<java.lang.Object> |
interceptors
|
private int |
order
|
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport |
---|
logger |
Fields inherited from interface org.springframework.core.Ordered |
---|
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Constructor Summary | |
---|---|
AbstractHandlerMapping()
|
Method Summary | |
---|---|
protected HandlerInterceptor |
adaptInterceptor(java.lang.Object interceptor)
Adapt the given interceptor object to the HandlerInterceptor interface. |
protected void |
extendInterceptors(java.util.List interceptors)
Extension hook that subclasses can override to register additional interceptors, given the configured interceptors (see setInterceptors(java.lang.Object[]) ). |
protected HandlerInterceptor[] |
getAdaptedInterceptors()
Return the adapted interceptors as HandlerInterceptor array. |
java.lang.Object |
getDefaultHandler()
Return the default handler for this handler mapping, or null if none. |
HandlerExecutionChain |
getHandler(PortletRequest request)
Look up a handler for the given request, falling back to the default handler if no specific one is found. |
protected HandlerExecutionChain |
getHandlerExecutionChain(java.lang.Object handler,
PortletRequest request)
Build a HandlerExecutionChain for the given handler, including applicable interceptors. |
protected abstract java.lang.Object |
getHandlerInternal(PortletRequest request)
Look up a handler for the given request, returning null if no
specific one is found. |
int |
getOrder()
Return the order value of this object, with a higher value meaning greater in terms of sorting. |
protected void |
initApplicationContext()
Initializes the interceptors. |
protected void |
initInterceptors()
Initialize the specified interceptors, adapting them where necessary. |
void |
setApplyWebRequestInterceptorsToRenderPhaseOnly(boolean applyWebRequestInterceptorsToRenderPhaseOnly)
Specify whether to apply WebRequestInterceptors to the Portlet render phase only ("true", or whether to apply them to the Portlet action phase as well ("false"). |
void |
setDefaultHandler(java.lang.Object defaultHandler)
Set the default handler for this handler mapping. |
void |
setInterceptors(java.lang.Object[] interceptors)
Set the interceptors to apply for all handlers mapped by this handler mapping. |
void |
setOrder(int order)
Specify the order value for this HandlerMapping bean. |
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport |
---|
getApplicationContext, getMessageSourceAccessor, initApplicationContext, isContextRequired, requiredContextClass, setApplicationContext |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private int order
private java.lang.Object defaultHandler
private final java.util.List<java.lang.Object> interceptors
private boolean applyWebRequestInterceptorsToRenderPhaseOnly
private HandlerInterceptor[] adaptedInterceptors
Constructor Detail |
---|
public AbstractHandlerMapping()
Method Detail |
---|
public final void setOrder(int order)
Default value is Integer.MAX_VALUE
, meaning that it's non-ordered.
Ordered.getOrder()
public final int getOrder()
Ordered
Normally starting with 0, with Integer.MAX_VALUE
indicating the greatest value. Same order values will result
in arbitrary positions for the affected objects.
Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).
getOrder
in interface Ordered
public void setDefaultHandler(java.lang.Object defaultHandler)
Default is null
, indicating no default handler.
public java.lang.Object getDefaultHandler()
null
if none.
public void setInterceptors(java.lang.Object[] interceptors)
Supported interceptor types are HandlerInterceptor and WebRequestInterceptor. Each given WebRequestInterceptor will be wrapped in a WebRequestHandlerInterceptorAdapter.
interceptors
- array of handler interceptors, or null
if noneadaptInterceptor(java.lang.Object)
,
HandlerInterceptor
,
WebRequestInterceptor
public void setApplyWebRequestInterceptorsToRenderPhaseOnly(boolean applyWebRequestInterceptorsToRenderPhaseOnly)
Default is "true", since WebRequestInterceptors are usually built for MVC-style handler execution plus rendering process (which is, for example, the primary target scenario for "Open Session in View" interceptors, offering lazy loading of persistent objects during view rendering). Set this to "false" to have WebRequestInterceptors apply to the action phase as well (for example, in case of an "Open Session in View" interceptor, to allow for lazy loading outside of a transaction during the action phase).
setInterceptors(java.lang.Object[])
,
WebRequestInterceptor
,
WebRequestHandlerInterceptorAdapter.WebRequestHandlerInterceptorAdapter(WebRequestInterceptor, boolean)
,
OpenSessionInViewInterceptor
protected void initApplicationContext() throws BeansException
initApplicationContext
in class ApplicationObjectSupport
ApplicationContextException
- in case of initialization errors
BeansException
- if thrown by ApplicationContext methodsextendInterceptors(java.util.List)
,
initInterceptors()
protected void extendInterceptors(java.util.List interceptors)
setInterceptors(java.lang.Object[])
).
Will be invoked before initInterceptors()
adapts the specified
interceptors into HandlerInterceptor
instances.
The default implementation is empty.
interceptors
- the configured interceptor List (never null
),
allowing to add further interceptors before as well as after the existing
interceptorsprotected void initInterceptors()
setInterceptors(java.lang.Object[])
,
adaptInterceptor(java.lang.Object)
protected HandlerInterceptor adaptInterceptor(java.lang.Object interceptor)
Supported interceptor types are HandlerInterceptor and WebRequestInterceptor. Each given WebRequestInterceptor will be wrapped in a WebRequestHandlerInterceptorAdapter. Can be overridden in subclasses.
interceptor
- the specified interceptor object
setApplyWebRequestInterceptorsToRenderPhaseOnly(boolean)
,
HandlerInterceptor
,
WebRequestInterceptor
,
WebRequestHandlerInterceptorAdapter
protected final HandlerInterceptor[] getAdaptedInterceptors()
null
if nonepublic final HandlerExecutionChain getHandler(PortletRequest request) throws java.lang.Exception
getHandler
in interface HandlerMapping
request
- current portlet request
java.lang.Exception
- if there is an internal errorgetHandlerInternal(PortletRequest)
protected abstract java.lang.Object getHandlerInternal(PortletRequest request) throws java.lang.Exception
null
if no
specific one is found. This method is called by getHandler(PortletRequest)
;
a null
return value will lead to the default handler, if one is set.
Note: This method may also return a pre-built HandlerExecutionChain
,
combining a handler object with dynamically determined interceptors.
Statically specified interceptors will get merged into such an existing chain.
request
- current portlet request
null
if none found
java.lang.Exception
- if there is an internal errorgetHandler(PortletRequest)
protected HandlerExecutionChain getHandlerExecutionChain(java.lang.Object handler, PortletRequest request)
The default implementation simply builds a standard HandlerExecutionChain with the given handler and this handler mapping's common interceptors. Subclasses may override this in order to extend/rearrange the list of interceptors.
NOTE: The passed-in handler object may be a raw handler or a pre-built HandlerExecutionChain. This method should handle those two cases explicitly, either building a new HandlerExecutionChain or extending the existing chain.
For simply adding an interceptor, consider calling super.getHandlerExecutionChain
and invoking HandlerExecutionChain.addInterceptor(org.springframework.web.portlet.HandlerInterceptor)
on the returned chain object.
handler
- the resolved handler instance (never null
)request
- current HTTP request
null
)getAdaptedInterceptors()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |