Обновление до весны-3.1, кажется, ломает мой CustomWebArgumentResolver

Я пытаюсь обновить весеннее приложение MVC с 3.0.6 до 3.1.2, и некоторые контроллеры, которые раньше работали, похоже, больше не работают. Я прочитал весенние документы, но я не совсем понимаю, что и с чем совместимо.

У нас есть CustomWebArgumentResolver, который ищет любой параметр запроса с именем & quot; asOf & quot; и покрывает его значение на дату. Мы называем это «невообразимо» «AsOfDateConverter». При обновлении до spring-3.1.2 я воспользовался новой функциональностью пространства имен и добавил это в свой applicationContext:

<mvc:annotation-driven conversion-service="conversionService">
    <mvc:argument-resolvers>
        <bean id="customWebArgumentResolver" class="my.converters.CustomWebArgumentResolver">
        </bean>            
    </mvc:argument-resolvers>
</mvc:annotation-driven>

CustomWebArgumentResolver прост:

public class CustomWebArgumentResolver implements WebArgumentResolver {
    private AsOfDateConverter asOfDateConverter;

    @Override
    public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception {
        if (isAsOfDateParameter(methodParameter)) {
            return asOfDateConverter.convert(webRequest.getParameter("asOf"));
        }

        return UNRESOLVED;
    }

Тогда пример контроллера может выглядеть примерно так:

@Controller
@Secured({BaseController.ROLE_LOGGED_IN})
@org.springframework.transaction.annotation.Transactional
public class DashboardController extends BaseController {
    public static final String URL = "/dashboard";

    @RequestMapping(value=URL, method=RequestMethod.GET)
    public ModelAndView get(@RequestParam(required=false) String requestedMeterType, @AsOf Date asOf) {
        debug(log, "Rendering dashboard asOf %s", asOf);
etc etc

& Quot; asOf & quot; значение параметра равно нулю, и я уверен, что мне не хватает чего-то очевидного. Если бы кто-то был в курсе последних событий MVC 3.1, я мог бы указать мне правильное направление, я был бы благодарен.

Спасибо! Том

РЕДАКТИРОВАТЬ: Аннотация AsOf:

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface AsOf {
}

Больше моего приложенияContext:

<mvc:annotation-driven conversion-service="conversionService">
    <mvc:argument-resolvers>
        <bean class="[blah].AsOfDateHandlerMethodArgumentResolver">
            <property name="asOfDateConverter">
                <bean class="[blah].AsOfDateConverter"/>
            </property>
        </bean> 
    </mvc:argument-resolvers>
</mvc:annotation-driven>

<!-- Added to re-support @Controller annotation scanning after upgrading to spring-3.1. -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>


<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="[blah].converters.CustomerConverter"/>
            <bean class="[blah].converters.AccountConverter"/>
            <bean class="[blah].converters.DateConverter"/>
            <bean class="[blah].converters.CustomerCommunicationInstanceConverter"/>
            <bean class="[blah].converters.MeterTypeConverter"/>
            <bean class="[blah].converters.AreaAmountConverter" p:precision="0"/>
            <bean class="[blah].converters.LengthAmountConverter" p:precision="1"/>
        </set>
    </property>
</bean>

Ответы на вопрос(1)

Ваш ответ на вопрос