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:
- 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
Method Summary |
protected String |
getLookupKey(javax.portlet.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.AbstractHandlerMapping |
adaptInterceptor, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getOrder, initInterceptors, setApplyWebRequestInterceptorsToRenderPhaseOnly, setDefaultHandler, setInterceptors, setOrder |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
ParameterHandlerMapping
public ParameterHandlerMapping()
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)
getLookupKey
protected String getLookupKey(javax.portlet.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)