org.springframework.web.portlet.handler

## Class ParameterHandlerMapping

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

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

      public class ParameterHandlerMapping
      extends AbstractMapBasedHandlerMapping<String>

  Implementation of the `HandlerMapping` to map from a request parameter to request handler beans.

  The default name of the parameter is "action", but can be changed using `setParameterName()`.

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

       <bean id="parameterHandlerMapping" class="org.springframework.web.portlet.handler.ParameterHandlerMapping">
         <property name="parameterMap">
           <map>
                   <entry key="add"><ref bean="addItemHandler"/></entry>
             <entry key="edit"><ref bean="editItemHandler"/></entry>
             <entry key="delete"><ref bean="deleteItemHandler"/></entry>
           </map>
         </property>
       </bean>

  Thanks to Rainer Schmitz for suggesting this mapping strategy!
  Since:
    2.0
  Author:
    John A. Lewis, Juergen Hoeller
  See Also:
    `ParameterMappingInterceptor`

- - ### Nested Class Summary

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

      `AbstractMapBasedHandlerMapping.PortletRequestMappingPredicate`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_PARAMETER_NAME` Default request parameter name to use for mapping to handlers: "action".

    - ### 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
    `ParameterHandlerMapping()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `getLookupKey(PortletRequest request)` Uses the value of the specified parameter as lookup key.
    `void` | `initApplicationContext()` Calls the `registerHandlers` method in addition to the superclass's initialization.
    `void` | `setParameterMap(Map<String,?> parameterMap)` Set a Map with parameters as keys and handler beans or bean names as values.
    `void` | `setParameterName(String parameterName)` Set the name of the parameter used for mapping to handlers.

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

- - ### Field Detail

    - #### DEFAULT_PARAMETER_NAME

          public static final String DEFAULT_PARAMETER_NAME

      Default request parameter name to use for mapping to handlers: "action".
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ParameterHandlerMapping

          public ParameterHandlerMapping()

  - ### Method Detail

    - #### setParameterName

          public void setParameterName(String parameterName)

      Set the name of the parameter used for mapping to handlers.

      Default is "action".

    - #### setParameterMap

          public void setParameterMap(Map<String,?> parameterMap)

      Set a Map with parameters as keys and handler beans or bean names as values. Convenient for population with bean references.
      Parameters:
        `parameterMap` - map with parameters as keys and beans 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, ?>)`

    - #### getLookupKey

          protected String getLookupKey(PortletRequest request)
                                 throws Exception

      Uses the value of the specified parameter as lookup key.
      Specified by:
        `getLookupKey` in class `AbstractMapBasedHandlerMapping<String>`
      Parameters:
        `request` - current portlet request
      Returns:
        the lookup key (never `null`)
      Throws:
        `Exception` - if key computation failed
      See Also:
        `setParameterName(java.lang.String)`