Я обновляю с Spring 3.2 до 4.1 и пытаюсь обновить конфигурацию MVC.Spring-MVC 3.2 до 4.1 Обновление: @RequestParam Not Binding
Краткая версия: Я могу подтвердить, что запрос посылает параметры:
userId:USERNAME
password:PASSWORD
termsAccepted:true
типа Содержимого application/x-www-form-urlencoded
.
Spring Security CSRF отключен: <security:csrf disabled="true"/>
Глядя на XSD, это говорит мой пользовательский метод аргумент резольверы не отменяют те, по умолчанию:
<mvc:annotation-driven >
<mvc:argument-resolvers>
<bean class="org.jason.web.util.RetainUserHandlerMethodArgumentResolver"/>
<bean class="org.jason.web.util.ConversationArgumentResolver"/>
</mvc:argument-resolvers>
<mvc:message-converters>
<bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
Может кто-нибудь предложить какие-либо понять?
Редактировать: Вот контроллер. Здесь ничего особенного.
@RequestMapping(value = "/login**")
public ModelAndView login(@RequestParam(value = "error", required = false) String error,
@RequestParam(value = "logout", required = false) String logout,
@RequestParam(value = "submit", required = false) String submit,
@RequestParam(value = "userId", required = false) String userId,
@RequestParam(value = "password", required = false) String password,
@RequestParam(value = "returnView", required = false) String returnView,
HttpServletRequest request,
HttpSession session
) {
// login log. Return a Spring ModelAndView based on success/failure.
}
Вы расширяете правильный класс/реализуете правильный интерфейс для пользовательских аргументов? Поскольку это изменилось из более старых версий (хотя я предполагаю, что вы использовали в конечном итоге «HandlerMethodArgumentResolver».). Можете ли вы опубликовать полную конфигурацию, а также, возможно, ваш контроллер. Вы также выполняете обновление кода или только обновление инфраструктуры? (Фактически это должно быть более или менее). –
Да, мои клиентские решения реализуют HandlerMethodArgumentResolver. Должна ли привязка параметров запроса к параметрам метода контроллера встроенным конвертером, который я не должен явно определять? Я не делал много изменений кода, в основном файлов конфигурации. – Jason
Также это предупреждение только от вашей IDE, действительно ли ваш код работает? Тот факт, что у вас есть предупреждение в вашей среде IDE, ничего не значит. Это действительно не отменяет их, они дополняют их. –