Переменные @RequestParam возвращают набор значений, разделенных запятыми, когда метод вызывается несколько раз - PullRequest
1 голос
/ 21 сентября 2011

Я только что заметил, что переменная @RequestParam, которую я использую для проверки параметров POST, таких как имена пользователей или идентификаторы, ведет себя довольно странно, когда метод контроллера вызывается последовательно.Вместо того, чтобы возвращать текущее значение параметра (например, «Jason», «Michael», «John»), он возвращает объединенную строку всех значений параметров, с которыми метод вызывался до этого.В результате переменная имеет значение: «Джейсон, Майкл, Джон», а не просто «Джон», который был последним.

Я заметил, что это странное поведение относится к сеансу.Когда я сократил продолжительность сеанса только до 1 минуты, я заметил, что после окончания сеанса также исчезают несколько значений.

Этого никогда не произойдет, если я вызову request.getParameter ("username").Конечно, я хотел бы придерживаться соглашений Spring MVC, если это возможно.

Это ошибка или что-то намеренное?Как я могу избежать этого?

Ответы [ 4 ]

2 голосов
/ 21 сентября 2011

Это ошибка на вашей странице JSP. Скорее всего, у вас есть скрытый и вход с тем же именем. В результате получается список значений, разделенных запятыми.

0 голосов
/ 25 августа 2017

Столкнулся с той же проблемой при реализации входа в AJAX и обнаружил, что это было вызвано перенаправлением, которое запускается после неудачных попыток входа в систему.Каким-то образом накапливались параметры j_usernamen и j_password.

0 голосов
/ 02 августа 2016

Попробуйте без весенних аннотаций:

Добавьте в свой метод атрибут с именем HttpServletRequest

String s = request.getParameter("parameterName")
0 голосов
/ 21 сентября 2011

Ваш атрибут может быть сохранен внутри весной в сеансе http и может быть использован повторно. Есть ли у вас случайно у вашего класса контроллера Spring конфигурация, позволяющая ограничить сессию этого параметра (либо @SessionAttributes("username") в классе, либо requireSession = true в объявлении XML-компонента-контроллера)?

Или вы добавили его в модель при повторном воспроизведении страницы с контроллера?

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