org.springframework.web.portlet.handler

## Class PortletModeHandlerMapping

- java.lang.Object
- - org.springframework.context.support.ApplicationObjectSupport
  - - org.springframework.web.portlet.handler.AbstractHandlerMapping
    - - org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping<PortletMode>
      - - org.springframework.web.portlet.handler.PortletModeHandlerMapping

- All Implemented Interfaces:
    Aware, ApplicationContextAware, Ordered, HandlerMapping

      public class PortletModeHandlerMapping
      extends AbstractMapBasedHandlerMapping<PortletMode>

  Implementation of the `HandlerMapping` interface to map from the current PortletMode to request handler beans.

  The bean configuration for this mapping will look something like this:

              <bean id="portletModeHandlerMapping" class="org.springframework.web.portlet.handler.PortletModeHandlerMapping">
                      <property name="portletModeMap">
                              <map>
                                      <entry key="view"><ref bean="viewHandler"/></entry>
                                      <entry key="edit"><ref bean="editHandler"/></entry>
                                      <entry key="help"><ref bean="helpHandler"/></entry>
                              </map>
                      </property>
              </bean>

  Since:
    2.0
  Author:
    William G. Thompson, Jr., John A. Lewis

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping

      `AbstractMapBasedHandlerMapping.PortletRequestMappingPredicate`

  - ### Field Summary

    - ### Fields inherited from class org.springframework.context.support.ApplicationObjectSupport

      `logger`

    - ### Fields inherited from interface org.springframework.core.Ordered

      `HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PortletModeHandlerMapping()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected PortletMode` | `getLookupKey(PortletRequest request)` Uses the current PortletMode as lookup key.
    `void` | `initApplicationContext()` Calls the `registerHandlers` method in addition to the superclass's initialization.
    `protected void` | `registerHandlersByMode(Map<String,Object> portletModeMap)` Register all handlers specified in the Portlet mode map for the corresponding modes.
    `void` | `setMappings(Properties mappings)` Set PortletMode to handler bean name mappings from a Properties object.
    `void` | `setPortletModeMap(Map<String,?> portletModeMap)` Set a Map with PortletModes as keys and handler beans as values.

    - ### Methods inherited from class org.springframework.web.portlet.handler.AbstractMapBasedHandlerMapping

      `getHandlerInternal, registerHandler, registerHandler, registerHandlers, setLazyInitHandlers`

    - ### Methods inherited from class org.springframework.web.portlet.handler.AbstractHandlerMapping

      `adaptInterceptor, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getOrder, initInterceptors, setApplyWebRequestInterceptorsToRenderPhaseOnly, setDefaultHandler, setInterceptors, setOrder`

    - ### 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`

- - ### Constructor Detail

    - #### PortletModeHandlerMapping

          public PortletModeHandlerMapping()

  - ### Method Detail

    - #### setMappings

          public void setMappings(Properties mappings)

      Set PortletMode to handler bean name mappings from a Properties object.
      Parameters:
        `mappings` - properties with PortletMode names as keys and bean names as values

    - #### setPortletModeMap

          public void setPortletModeMap(Map<String,?> portletModeMap)

      Set a Map with PortletModes as keys and handler beans as values. Convenient for population with bean references.
      Parameters:
        `portletModeMap` - map with PortletMode names as keys and beans or bean names as values

    - #### initApplicationContext

          public void initApplicationContext()
                                      throws BeansException

      Calls the `registerHandlers` method in addition to the superclass's initialization.
      Overrides:
        `initApplicationContext` in class `AbstractHandlerMapping`
      Throws:
        `ApplicationContextException` - in case of initialization errors
        `BeansException` - if thrown by ApplicationContext methods
      See Also:
        `AbstractMapBasedHandlerMapping.registerHandlers(java.util.Map<K, ?>)`

    - #### registerHandlersByMode

          protected void registerHandlersByMode(Map<String,Object> portletModeMap)

      Register all handlers specified in the Portlet mode map for the corresponding modes.
      Parameters:
        `portletModeMap` - Map with mode names as keys and handler beans or bean names as values

    - #### getLookupKey

          protected PortletMode getLookupKey(PortletRequest request)
                                      throws Exception

      Uses the current PortletMode as lookup key.
      Specified by:
        `getLookupKey` in class `AbstractMapBasedHandlerMapping<PortletMode>`
      Parameters:
        `request` - current portlet request
      Returns:
        the lookup key (never `null`)
      Throws:
        `Exception` - if key computation failed