In a Spring 3 based web (portlet) application I have a controller with a method like this:
@RenderMapping
public ModelAn
Implement a WebArgumentResolver:
public class MyArgumentResolver implements WebArgumentResolver
{
@Override
public Object resolveArgument(MethodParameter methodParameter,
NativeWebRequest webRequest) throws Exception
{
Class> paramType = methodParameter.getParameterType();
if (paramType == MyClass.class)
{
String parameterName = methodParameter.getParameterName();
String stringParameter = webRequest.getParameter(parameterName);
return convert(stringParameter);
}
return UNRESOLVED;
}
}
And register it in your applicationContext.xml:
This works and even has the advantage of allowing parameter conversion that is based on multiple method parameters.