У меня проблема с параметрами, переданными в URL-адресе.Struts 2.0.14 Параметры GET не являются URLDecoded, это ошибка?
Пусть говорят, запрос: /struts/MyAction.action?param=foo%40bar.com
поле действие получает поле "PARAM" установлено значение "Foo% 40bar.com", что ошибка, или я слишком много ожидаю от Струтов?
Моя интуиция говорит мне, что я должен получить значение: «[email protected]», как, например, произойдет, если я передам этот параметр как поле формы POST.
Я использую стек перехватчика по умолчанию, и мой класс действия расширяет ActionSupport. Я получаю некоторое поведение на WebSphere6.1 & GlassFish2.1.
Благодаря
Привет Снова,
Проблема была вызвана ошибкой в реализации прокси. Мы создали собственный прокси-сервер, который стоял перед веб-приложением. Он кодировал параметры URL во второй раз, и именно поэтому в Struts у меня было% 40 вместо @. Ошибка исправлена и параметры передаются правильно.
Спасибо за вашу помощь
Вы должны использовать геттеры и сеттеры, а не обнажать поля как общедоступные. Это всего лишь общая передовая практика на Java. –
С помощью стойки вы должны выполнять валидацию в методах валидации, геттер и сеттер должны делать ничего, кроме get/set, ограничения параметров также обрабатываются в другом месте ... Классы в действиях тонкие, поэтому вам не нужно много изоляции, поскольку такой (и с рефакторингом IDE очень просто). В общем, это хорошая идея, но, как я делаю действия, преимущества кажутся довольно абстрактными, а не добавлением их улучшает читаемость. OT просто FYI, hibernate может даже разрешить настройку частных полей (через переработку байт-кода) говорить об экзотике! Я согласен, что get/set - это «лучшая практика», но это не всегда лучше. – Quaternion
Привет, это не форма, а ссылка на действие в созданном письме. Путь к классам выглядит нормально, и мы не получаем тревожного вывода в журналах. Я попробую Struts 2.2.1 и посмотреть, не изменит ли он что-нибудь –