Использование @RequestParam выдает ошибку в Spring 3 - PullRequest
6 голосов
/ 20 сентября 2011

Я использую аннотацию @RequestParam для получения параметров запроса и использую их для вставки значений в БД. Я настроил контроллер для перенаправления на ту же страницу, которая содержит текстовые поля для ввода пользователем значений, которые читаются с помощью аннотации @RequestParam.

Но после того, как я введу значения в текстовые поля и нажму "отправить", выдается эта ошибка

Ошибка обработки запроса; вложенное исключение - java.lang.IllegalArgumentException: имя для типа аргумента [java.lang.String] недоступно, и информация об имени параметра также не найдена в файле класса.

Я новичок в Spring 3 и не могу понять ошибку. Кто-нибудь может пролить свет на то же самое.

Спасибо заранее, Вивек

Ответы [ 2 ]

9 голосов
/ 20 сентября 2011

Чтобы ввести значение параметра запроса в параметр метода вашего обработчика, должно быть выполнено одно из следующих действий

  1. Имя параметра запроса должно совпадать с именемпараметр метода.Например, следующий метод вставит параметр запроса с именем «studentName» в параметр метода studentName

    public String goToStep(@RequestParam String studentName)

  2. Имя параметра запроса должно быть явно указано, если оно не соответствуетпараметр метода.Следующее будет вставлять параметр запроса "nameOfStudent" в studentName:

    public String goToStep(@RequestParam("nameOfStudent") String studentName)

Пожалуйста, опубликуйте код метода вашего обработчика, если ваша проблема продолжает сохраняться.

4 голосов
/ 22 сентября 2011

Я спросил версию, которую вы используете, потому что столкнулся с подобной проблемой несколько дней назад. Я использовал Spring 3.1.0.M2, и то же исключение появилось, когда я использовал @PathVariable в прокси @ контроллере.

Это было вызвано исправленной известной ошибкой . Вам просто нужно переключиться на 3.0.6 или попробовать ночную сборку 3.1.0.BUILD-SNAPSHOT. Конечно, последний вариант не рекомендуется для производственной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...