Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.web.portlet
Class DispatcherPortlet

    java.lang.Object
      javax.portlet.GenericPortlet
          org.springframework.web.portlet.GenericPortletBean
              org.springframework.web.portlet.FrameworkPortlet
                  org.springframework.web.portlet.DispatcherPortlet

All Implemented Interfaces:
  java.util.EventListener, javax.portlet.EventPortlet, javax.portlet.Portlet, javax.portlet.PortletConfig, javax.portlet.ResourceServingPortlet, Aware, ApplicationListener<ContextRefreshedEvent>, EnvironmentAware

    public class DispatcherPortlet

extends FrameworkPortlet

Central dispatcher for use within the Portlet MVC framework, e.g. for web UI controllers. Dispatches to registered handlers for processing a portlet request.

This portlet is very flexible: It can be used with just about any workflow, with the installation of the appropriate adapter classes. It offers the following functionality that distinguishes it from other request-driven portlet MVC frameworks:

- It is based around a JavaBeans configuration mechanism.
- It can use any `HandlerMapping` implementation - pre-built or provided as part of an application - to control the routing of requests to handler objects. Default is a `DefaultAnnotationHandlerMapping`. HandlerMapping objects can be defined as beans in the portlet's application context, implementing the HandlerMapping interface, overriding the default HandlerMapping if present. HandlerMappings can be given any bean name (they are tested by type).
- It can use any `HandlerAdapter`; this allows for using any handler interface. The default adapter is `SimpleControllerHandlerAdapter` for Spring's `Controller` interface. A default `AnnotationMethodHandlerAdapter` will be registered as well. HandlerAdapter objects can be added as beans in the application context, overriding the default HandlerAdapter. Like HandlerMappings, HandlerAdapters can be given any bean name (they are tested by type).
- The dispatcher's exception resolution strategy can be specified via a `HandlerExceptionResolver`, for example mapping certain exceptions to error pages. Default is none. Additional HandlerExceptionResolvers can be added through the application context. HandlerExceptionResolver can be given any bean name (they are tested by type).
- Its view resolution strategy can be specified via a `ViewResolver` implementation, resolving symbolic view names into View objects. Default is `InternalResourceViewResolver`. ViewResolver objects can be added as beans in the application context, overriding the default ViewResolver. ViewResolvers can be given any bean name (they are tested by type).
- The dispatcher's strategy for resolving multipart requests is determined by a `PortletMultipartResolver` implementation. An implementations for Jakarta Commons FileUpload is included: `CommonsPortletMultipartResolver`. The MultipartResolver bean name is "portletMultipartResolver"; default is none.

NOTE: The `@RequestMapping` annotation will only be processed if a corresponding `HandlerMapping` (for type level annotations) and/or `HandlerAdapter` (for method level annotations) is present in the dispatcher. This is the case by default. However, if you are defining custom `HandlerMappings` or `HandlerAdapters`, then you need to make sure that a corresponding custom `DefaultAnnotationHandlerMapping` and/or `AnnotationMethodHandlerAdapter` is defined as well - provided that you intend to use `@RequestMapping`.

A web application can define any number of DispatcherPortlets. Each portlet will operate in its own namespace, loading its own application context with mappings, handlers, etc. Only the root application context as loaded by `ContextLoaderListener`, if any, will be shared.

Thanks to Rainer Schmitz and Nick Lothian for their suggestions!

Since:
  2.0
Author:
  William G. Thompson, Jr., John A. Lewis, Juergen Hoeller
See Also:
  `Controller`, `ViewRendererServlet`, `ContextLoaderListener`

Field Summary
`static java.lang.String` | `ACTION_EXCEPTION_RENDER_PARAMETER` This render parameter is used to indicate forward to the render phase that an exception occurred during the action phase.
`static java.lang.String` | `ACTION_EXCEPTION_SESSION_ATTRIBUTE` Unlike the Servlet version of this class, we have to deal with the two-phase nature of the portlet request.
`static java.lang.String` | `DEFAULT_VIEW_RENDERER_URL` Default URL to ViewRendererServlet.
`static java.lang.String` | `HANDLER_ADAPTER_BEAN_NAME` Well-known name for the HandlerAdapter object in the bean factory for this namespace.
`static java.lang.String` | `HANDLER_EXCEPTION_RESOLVER_BEAN_NAME` Well-known name for the HandlerExceptionResolver object in the bean factory for this namespace.
`static java.lang.String` | `HANDLER_MAPPING_BEAN_NAME` Well-known name for the HandlerMapping object in the bean factory for this namespace.
`static java.lang.String` | `MULTIPART_RESOLVER_BEAN_NAME` Well-known name for the PortletMultipartResolver object in the bean factory for this namespace.
`static java.lang.String` | `PAGE_NOT_FOUND_LOG_CATEGORY` Log category to use when no mapped handler is found for a request.
`protected static org.apache.commons.logging.Log` | `pageNotFoundLogger` Additional logger to use when no mapped handler is found for a request.
`static java.lang.String` | `VIEW_RESOLVER_BEAN_NAME` Well-known name for the ViewResolver object in the bean factory for this namespace.

Fields inherited from class org.springframework.web.portlet.FrameworkPortlet
`DEFAULT_CONTEXT_CLASS, DEFAULT_NAMESPACE_SUFFIX, DEFAULT_USERINFO_ATTRIBUTE_NAMES, PORTLET_CONTEXT_PREFIX`

Fields inherited from class org.springframework.web.portlet.GenericPortletBean
`logger`

Constructor Summary
`DispatcherPortlet()`

Method Summary
`protected javax.portlet.ActionRequest` | `checkMultipart(javax.portlet.ActionRequest request)` Convert the request into a multipart request, and make multipart resolver available.
`protected java.lang.Object` | `createDefaultStrategy(ApplicationContext context, java.lang.Class<?> clazz)` Create a default strategy.
`protected void` | `doActionService(javax.portlet.ActionRequest request, javax.portlet.ActionResponse response)` Processes the actual dispatching to the handler for action requests.
`protected void` | `doEventService(javax.portlet.EventRequest request, javax.portlet.EventResponse response)` Processes the actual dispatching to the handler for event requests.
`protected void` | `doRender(View view, java.util.Map model, javax.portlet.PortletRequest request, javax.portlet.MimeResponse response)` Actually render the given view.
`protected void` | `doRenderService(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)` Processes the actual dispatching to the handler for render requests.
`protected void` | `doResourceService(javax.portlet.ResourceRequest request, javax.portlet.ResourceResponse response)` Processes the actual dispatching to the handler for resource requests.
`protected void` | `exposeActionException(javax.portlet.PortletRequest request, javax.portlet.StateAwareResponse response, java.lang.Exception ex)` Expose the given action exception to the given response.
`protected
`<T> java.util.List<T>`
` | `getDefaultStrategies(ApplicationContext context, java.lang.Class<T> strategyInterface)` Create a List of default strategy objects for the given strategy interface.
`protected
`<T> T`
` | `getDefaultStrategy(ApplicationContext context, java.lang.Class<T> strategyInterface)` Return the default strategy object for the given strategy interface.
`protected HandlerExecutionChain` | `getHandler(javax.portlet.PortletRequest request)` Return the HandlerExecutionChain for this request.
`protected HandlerAdapter` | `getHandlerAdapter(java.lang.Object handler)` Return the HandlerAdapter for this handler object.
`PortletMultipartResolver` | `getMultipartResolver()` Obtain this portlet's PortletMultipartResolver, if any.
`protected void` | `initStrategies(ApplicationContext context)` Refresh the strategy objects that this portlet uses.
`protected void` | `noHandlerFound(javax.portlet.PortletRequest request, javax.portlet.PortletResponse response)` No handler found -> throw appropriate exception.
`void` | `onRefresh(ApplicationContext context)` This implementation calls `initStrategies(org.springframework.context.ApplicationContext)`.
`protected ModelAndView` | `processHandlerException(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response, java.lang.Object handler, java.lang.Exception ex)` Determine an error ModelAndView via the registered HandlerExceptionResolvers.
`protected ModelAndView` | `processHandlerException(javax.portlet.ResourceRequest request, javax.portlet.ResourceResponse response, java.lang.Object handler, java.lang.Exception ex)` Determine an error ModelAndView via the registered HandlerExceptionResolvers.
`protected void` | `render(ModelAndView mv, javax.portlet.PortletRequest request, javax.portlet.MimeResponse response)` Render the given ModelAndView.
`protected View` | `resolveViewName(java.lang.String viewName, java.util.Map model, javax.portlet.PortletRequest request)` Resolve the given view name into a View object (to be rendered).
`void` | `setDetectAllHandlerAdapters(boolean detectAllHandlerAdapters)` Set whether to detect all HandlerAdapter beans in this portlet's context.
`void` | `setDetectAllHandlerExceptionResolvers(boolean detectAllHandlerExceptionResolvers)` Set whether to detect all HandlerExceptionResolver beans in this portlet's context.
`void` | `setDetectAllHandlerMappings(boolean detectAllHandlerMappings)` Set whether to detect all HandlerMapping beans in this portlet's context.
`void` | `setDetectAllViewResolvers(boolean detectAllViewResolvers)` Set whether to detect all ViewResolver beans in this portlet's context.
`void` | `setViewRendererUrl(java.lang.String viewRendererUrl)` Set the URL to the ViewRendererServlet.

Methods inherited from class org.springframework.web.portlet.FrameworkPortlet
`buildLocaleContext, createPortletApplicationContext, destroy, doDispatch, getContextClass, getContextConfigLocation, getNamespace, getPortletApplicationContext, getPortletContextAttributeName, getTitle, getUsernameForRequest, initFrameworkPortlet, initPortletApplicationContext, initPortletBean, onApplicationEvent, postProcessPortletApplicationContext, processAction, processEvent, processRequest, refresh, serveResource, setContextClass, setContextConfigLocation, setNamespace, setPublishContext, setPublishEvents, setThreadContextInheritable, setUserinfoUsernameAttributes`

Methods inherited from class org.springframework.web.portlet.GenericPortletBean
`addRequiredProperty, getPortletContext, getPortletName, init, initBeanWrapper, setEnvironment`

Methods inherited from class javax.portlet.GenericPortlet
`doEdit, doHeaders, doHelp, doView, getContainerRuntimeOptions, getDefaultNamespace, getInitParameter, getInitParameterNames, getNextPossiblePortletModes, getPortletConfig, getProcessingEventQNames, getPublicRenderParameterNames, getPublishingEventQNames, getResourceBundle, getSupportedLocales, init, render`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MULTIPART_RESOLVER_BEAN_NAME

    public static final java.lang.String MULTIPART_RESOLVER_BEAN_NAME

  Well-known name for the PortletMultipartResolver object in the bean factory for this namespace.

  See Also:
    Constant Field Values

### HANDLER_MAPPING_BEAN_NAME

    public static final java.lang.String HANDLER_MAPPING_BEAN_NAME

  Well-known name for the HandlerMapping object in the bean factory for this namespace. Only used when "detectAllHandlerMappings" is turned off.

  See Also:
    `setDetectAllViewResolvers(boolean)`, Constant Field Values

### HANDLER_ADAPTER_BEAN_NAME

    public static final java.lang.String HANDLER_ADAPTER_BEAN_NAME

  Well-known name for the HandlerAdapter object in the bean factory for this namespace. Only used when "detectAllHandlerAdapters" is turned off.

  See Also:
    `setDetectAllHandlerAdapters(boolean)`, Constant Field Values

### HANDLER_EXCEPTION_RESOLVER_BEAN_NAME

    public static final java.lang.String HANDLER_EXCEPTION_RESOLVER_BEAN_NAME

  Well-known name for the HandlerExceptionResolver object in the bean factory for this namespace. Only used when "detectAllHandlerExceptionResolvers" is turned off.

  See Also:
    `setDetectAllViewResolvers(boolean)`, Constant Field Values

### VIEW_RESOLVER_BEAN_NAME

    public static final java.lang.String VIEW_RESOLVER_BEAN_NAME

  Well-known name for the ViewResolver object in the bean factory for this namespace.

  See Also:
    Constant Field Values

### DEFAULT_VIEW_RENDERER_URL

    public static final java.lang.String DEFAULT_VIEW_RENDERER_URL

  Default URL to ViewRendererServlet. This bridge servlet is used to convert portlet render requests to servlet requests in order to leverage the view support in the `org.springframework.web.view` package.

  See Also:
    Constant Field Values

### ACTION_EXCEPTION_SESSION_ATTRIBUTE

    public static final java.lang.String ACTION_EXCEPTION_SESSION_ATTRIBUTE

  Unlike the Servlet version of this class, we have to deal with the two-phase nature of the portlet request. To do this, we need to pass forward any exception that occurs during the action phase, so that it can be displayed in the render phase. The only direct way to pass things forward and preserve them for each render request is through render parameters, but these are limited to String objects and we need to pass the Exception itself. The only other way to do this is in the session. The bad thing about using the session is that we have no way of knowing when we are done re-rendering the request and so we don't know when we can remove the objects from the session. So we will end up polluting the session with an old exception when we finally leave the render phase of one request and move on to something else.

### ACTION_EXCEPTION_RENDER_PARAMETER

    public static final java.lang.String ACTION_EXCEPTION_RENDER_PARAMETER

  This render parameter is used to indicate forward to the render phase that an exception occurred during the action phase.

  See Also:
    Constant Field Values

### PAGE_NOT_FOUND_LOG_CATEGORY

    public static final java.lang.String PAGE_NOT_FOUND_LOG_CATEGORY

  Log category to use when no mapped handler is found for a request.

  See Also:
    Constant Field Values

### pageNotFoundLogger

    protected static final org.apache.commons.logging.Log pageNotFoundLogger

  Additional logger to use when no mapped handler is found for a request.

Constructor Detail

### DispatcherPortlet

    public DispatcherPortlet()

Method Detail

### setDetectAllHandlerMappings

    public void setDetectAllHandlerMappings(boolean detectAllHandlerMappings)

  Set whether to detect all HandlerMapping beans in this portlet's context. Else, just a single bean with name "handlerMapping" will be expected.

  Default is true. Turn this off if you want this portlet to use a single HandlerMapping, despite multiple HandlerMapping beans being defined in the context.

### setDetectAllHandlerAdapters

    public void setDetectAllHandlerAdapters(boolean detectAllHandlerAdapters)

  Set whether to detect all HandlerAdapter beans in this portlet's context. Else, just a single bean with name "handlerAdapter" will be expected.

  Default is "true". Turn this off if you want this portlet to use a single HandlerAdapter, despite multiple HandlerAdapter beans being defined in the context.

### setDetectAllHandlerExceptionResolvers

    public void setDetectAllHandlerExceptionResolvers(boolean detectAllHandlerExceptionResolvers)

  Set whether to detect all HandlerExceptionResolver beans in this portlet's context. Else, just a single bean with name "handlerExceptionResolver" will be expected.

  Default is true. Turn this off if you want this portlet to use a single HandlerExceptionResolver, despite multiple HandlerExceptionResolver beans being defined in the context.

### setDetectAllViewResolvers

    public void setDetectAllViewResolvers(boolean detectAllViewResolvers)

  Set whether to detect all ViewResolver beans in this portlet's context. Else, just a single bean with name "viewResolver" will be expected.

  Default is true. Turn this off if you want this portlet to use a single ViewResolver, despite multiple ViewResolver beans being defined in the context.

### setViewRendererUrl

    public void setViewRendererUrl(java.lang.String viewRendererUrl)

  Set the URL to the ViewRendererServlet. That servlet is used to ultimately render all views in the portlet application.

### onRefresh

    public void onRefresh(ApplicationContext context)

  This implementation calls `initStrategies(org.springframework.context.ApplicationContext)`.

  Overrides:
    `onRefresh` in class `FrameworkPortlet`
  Parameters:
    `context` - the current Portlet ApplicationContext
  See Also:
    `FrameworkPortlet.refresh()`

### initStrategies

    protected void initStrategies(ApplicationContext context)

  Refresh the strategy objects that this portlet uses.

  May be overridden in subclasses in order to initialize further strategy objects.

### getDefaultStrategy

    protected <T> T getDefaultStrategy(ApplicationContext context,
                                       java.lang.Class<T> strategyInterface)

  Return the default strategy object for the given strategy interface.

  The default implementation delegates to `getDefaultStrategies(org.springframework.context.ApplicationContext, java.lang.Class)`, expecting a single object in the list.

  Parameters:
    `context` - the current Portlet ApplicationContext
    `strategyInterface` - the strategy interface
  Returns:
    the corresponding strategy object
  See Also:
    `getDefaultStrategies(org.springframework.context.ApplicationContext, java.lang.Class)`

### getDefaultStrategies

    protected <T> java.util.List<T> getDefaultStrategies(ApplicationContext context,
                                                         java.lang.Class<T> strategyInterface)

  Create a List of default strategy objects for the given strategy interface.

  The default implementation uses the "DispatcherPortlet.properties" file (in the same package as the DispatcherPortlet class) to determine the class names. It instantiates the strategy objects and satisifies ApplicationContextAware if necessary.

  Parameters:
    `context` - the current Portlet ApplicationContext
    `strategyInterface` - the strategy interface
  Returns:
    the List of corresponding strategy objects

### createDefaultStrategy

    protected java.lang.Object createDefaultStrategy(ApplicationContext context,
                                                     java.lang.Class<?> clazz)

  Create a default strategy.

  The default implementation uses `AutowireCapableBeanFactory.createBean(java.lang.Class)`.

  Parameters:
    `context` - the current Portlet ApplicationContext
    `clazz` - the strategy implementation class to instantiate
  Returns:
    the fully configured strategy instance
  See Also:
    `ApplicationContext.getAutowireCapableBeanFactory()`

### getMultipartResolver

    public PortletMultipartResolver getMultipartResolver()

  Obtain this portlet's PortletMultipartResolver, if any.

  Returns:
    the PortletMultipartResolver used by this portlet, or `null` if none (indicating that no multipart support is available)

### doActionService

    protected void doActionService(javax.portlet.ActionRequest request,
                                   javax.portlet.ActionResponse response)
                            throws java.lang.Exception

  Processes the actual dispatching to the handler for action requests.

  The handler will be obtained by applying the portlet's HandlerMappings in order. The HandlerAdapter will be obtained by querying the portlet's installed HandlerAdapters to find the first that supports the handler class.

  Specified by:
    `doActionService` in class `FrameworkPortlet`
  Parameters:
    `request` - current portlet action request
    `response` - current portlet Action response
  Throws:
    `java.lang.Exception` - in case of any kind of processing failure
  See Also:
    `GenericPortlet.processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)`

### doRenderService

    protected void doRenderService(javax.portlet.RenderRequest request,
                                   javax.portlet.RenderResponse response)
                            throws java.lang.Exception

  Processes the actual dispatching to the handler for render requests.

  The handler will be obtained by applying the portlet's HandlerMappings in order. The HandlerAdapter will be obtained by querying the portlet's installed HandlerAdapters to find the first that supports the handler class.

  Specified by:
    `doRenderService` in class `FrameworkPortlet`
  Parameters:
    `request` - current portlet render request
    `response` - current portlet render response
  Throws:
    `java.lang.Exception` - in case of any kind of processing failure
  See Also:
    `GenericPortlet.doDispatch(javax.portlet.RenderRequest, javax.portlet.RenderResponse)`

### doResourceService

    protected void doResourceService(javax.portlet.ResourceRequest request,
                                     javax.portlet.ResourceResponse response)
                              throws java.lang.Exception

  Processes the actual dispatching to the handler for resource requests.

  The handler will be obtained by applying the portlet's HandlerMappings in order. The HandlerAdapter will be obtained by querying the portlet's installed HandlerAdapters to find the first that supports the handler class.

  Specified by:
    `doResourceService` in class `FrameworkPortlet`
  Parameters:
    `request` - current portlet render request
    `response` - current portlet render response
  Throws:
    `java.lang.Exception` - in case of any kind of processing failure
  See Also:
    `GenericPortlet.serveResource(javax.portlet.ResourceRequest, javax.portlet.ResourceResponse)`

### doEventService

    protected void doEventService(javax.portlet.EventRequest request,
                                  javax.portlet.EventResponse response)
                           throws java.lang.Exception

  Processes the actual dispatching to the handler for event requests.

  The handler will be obtained by applying the portlet's HandlerMappings in order. The HandlerAdapter will be obtained by querying the portlet's installed HandlerAdapters to find the first that supports the handler class.

  Specified by:
    `doEventService` in class `FrameworkPortlet`
  Parameters:
    `request` - current portlet action request
    `response` - current portlet Action response
  Throws:
    `java.lang.Exception` - in case of any kind of processing failure
  See Also:
    `GenericPortlet.processEvent(javax.portlet.EventRequest, javax.portlet.EventResponse)`

### checkMultipart

    protected javax.portlet.ActionRequest checkMultipart(javax.portlet.ActionRequest request)
                                                  throws MultipartException

  Convert the request into a multipart request, and make multipart resolver available. If no multipart resolver is set, simply use the existing request.

  Parameters:
    `request` - current HTTP request
  Returns:
    the processed request (multipart wrapper if necessary)
  Throws:
    `MultipartException`

### getHandler

    protected HandlerExecutionChain getHandler(javax.portlet.PortletRequest request)
                                        throws java.lang.Exception

  Return the HandlerExecutionChain for this request. Try all handler mappings in order.

  Parameters:
    `request` - current portlet request
  Returns:
    the HandlerExceutionChain, or null if no handler could be found
  Throws:
    `java.lang.Exception`

### noHandlerFound

    protected void noHandlerFound(javax.portlet.PortletRequest request,
                                  javax.portlet.PortletResponse response)
                           throws java.lang.Exception

  No handler found -> throw appropriate exception.

  Parameters:
    `request` - current portlet request
    `response` - current portlet response
  Throws:
    `java.lang.Exception` - if preparing the response failed

### getHandlerAdapter

    protected HandlerAdapter getHandlerAdapter(java.lang.Object handler)
                                        throws javax.portlet.PortletException

  Return the HandlerAdapter for this handler object.

  Parameters:
    `handler` - the handler object to find an adapter for
  Throws:
    `javax.portlet.PortletException` - if no HandlerAdapter can be found for the handler. This is a fatal error.

### exposeActionException

    protected void exposeActionException(javax.portlet.PortletRequest request,
                                         javax.portlet.StateAwareResponse response,
                                         java.lang.Exception ex)

  Expose the given action exception to the given response.

  Parameters:
    `request` - current portlet request
    `response` - current portlet response
    `ex` - the action exception (may also come from an event phase)

### render

    protected void render(ModelAndView mv,
                          javax.portlet.PortletRequest request,
                          javax.portlet.MimeResponse response)
                   throws java.lang.Exception

  Render the given ModelAndView. This is the last stage in handling a request. It may involve resolving the view by name.

  Parameters:
    `mv` - the ModelAndView to render
    `request` - current portlet render request
    `response` - current portlet render response
  Throws:
    `java.lang.Exception` - if there's a problem rendering the view

### resolveViewName

    protected View resolveViewName(java.lang.String viewName,
                                   java.util.Map model,
                                   javax.portlet.PortletRequest request)
                            throws java.lang.Exception

  Resolve the given view name into a View object (to be rendered).

  Default implementations asks all ViewResolvers of this dispatcher. Can be overridden for custom resolution strategies, potentially based on specific model attributes or request parameters.

  Parameters:
    `viewName` - the name of the view to resolve
    `model` - the model to be passed to the view
    `request` - current portlet render request
  Returns:
    the View object, or null if none found
  Throws:
    `java.lang.Exception` - if the view cannot be resolved (typically in case of problems creating an actual View object)
  See Also:
    `ViewResolver.resolveViewName(java.lang.String, java.util.Locale)`

### doRender

    protected void doRender(View view,
                            java.util.Map model,
                            javax.portlet.PortletRequest request,
                            javax.portlet.MimeResponse response)
                     throws java.lang.Exception

  Actually render the given view.

  The default implementation delegates to `ViewRendererServlet`.

  Parameters:
    `view` - the View to render
    `model` - the associated model
    `request` - current portlet render request
    `response` - current portlet render response
  Throws:
    `java.lang.Exception` - if there's a problem rendering the view

### processHandlerException

    protected ModelAndView processHandlerException(javax.portlet.RenderRequest request,
                                                   javax.portlet.RenderResponse response,
                                                   java.lang.Object handler,
                                                   java.lang.Exception ex)
                                            throws java.lang.Exception

  Determine an error ModelAndView via the registered HandlerExceptionResolvers.

  Parameters:
    `request` - current portlet request
    `response` - current portlet response
    `handler` - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
    `ex` - the exception that got thrown during handler execution
  Returns:
    a corresponding ModelAndView to forward to
  Throws:
    `java.lang.Exception` - if no error ModelAndView found

### processHandlerException

    protected ModelAndView processHandlerException(javax.portlet.ResourceRequest request,
                                                   javax.portlet.ResourceResponse response,
                                                   java.lang.Object handler,
                                                   java.lang.Exception ex)
                                            throws java.lang.Exception

  Determine an error ModelAndView via the registered HandlerExceptionResolvers.

  Parameters:
    `request` - current portlet request
    `response` - current portlet response
    `handler` - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
    `ex` - the exception that got thrown during handler execution
  Returns:
    a corresponding ModelAndView to forward to
  Throws:
    `java.lang.Exception` - if no error ModelAndView found

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD