Class ParameterMappingInterceptor
- java.lang.Object
- org.springframework.web.portlet.handler.HandlerInterceptorAdapter
- org.springframework.web.portlet.handler.ParameterMappingInterceptor
- All Implemented Interfaces:
HandlerInterceptor
public class ParameterMappingInterceptor extends HandlerInterceptorAdapter
Interceptor to forward a request parameter from theActionRequest
to theRenderRequest
.This can be useful when using
ParameterHandlerMapping
orPortletModeParameterHandlerMapping
. It will ensure that the parameter that was used to map theActionRequest
to a handler will be forwarded to theRenderRequest
so that it will also be mapped the same way.When using this Interceptor, you can still change the value of the mapping parameter in your handler in order to change where the render request will get mapped.
Be aware that this Interceptor does call
ActionResponse.setRenderParameter
, which means that you will not be able to callActionResponse.sendRedirect
in your handler. If you may need to issue a redirect, then you should avoid this Interceptor and either write a different one that does this in a different way, or manually forward the parameter from within your handler(s).Thanks to Rainer Schmitz for suggesting this mapping strategy!
- Since:
- 2.0
- Author:
- John A. Lewis
- See Also:
ParameterHandlerMapping
,PortletModeParameterHandlerMapping
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_PARAMETER_NAME
Request parameter name to use for mapping to handlers
Constructor Summary
Constructors Constructor Description ParameterMappingInterceptor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
preHandleAction(ActionRequest request, ActionResponse response, Object handler)
If request is anActionRequest
, get handler mapping parameter and add it to the ActionResponse.void
setParameterName(String parameterName)
Set the name of the parameter used for mapping.Methods inherited from class org.springframework.web.portlet.handler.HandlerInterceptorAdapter
afterActionCompletion, afterCompletion, afterEventCompletion, afterRenderCompletion, afterResourceCompletion, postHandleRender, postHandleResource, preHandle, preHandleEvent, preHandleRender, preHandleResource
Field Detail
DEFAULT_PARAMETER_NAME
public static final String DEFAULT_PARAMETER_NAME
Request parameter name to use for mapping to handlers- See Also:
- Constant Field Values
Constructor Detail
ParameterMappingInterceptor
public ParameterMappingInterceptor()
Method Detail
setParameterName
public void setParameterName(String parameterName)
Set the name of the parameter used for mapping.
preHandleAction
public boolean preHandleAction(ActionRequest request, ActionResponse response, Object handler)
If request is anActionRequest
, get handler mapping parameter and add it to the ActionResponse.- Specified by:
preHandleAction
in interfaceHandlerInterceptor
- Overrides:
preHandleAction
in classHandlerInterceptorAdapter
- Parameters:
request
- current portlet action requestresponse
- current portlet action responsehandler
- chosen handler to execute, for type and/or instance evaluation- Returns:
true
if the execution chain should proceed with the next interceptor or the handler itself. Else,DispatcherPortlet
assumes that this interceptor has already dealt with the response itself