Взяв предыдущий мой вопрос, мне удалось получить правильную работу URL-адреса для моего проекта struts, где URL-адреса, такие как search?q=blah
, преобразуются в запросы search.action?q=blah
. Для этого мы используем UrlRewriteFilter. Кажется, что он перенаправлен на struts (если у него есть сопоставление фильтра с FORWARD), но когда запускается ParametersIntercepter
, похоже, он дважды ловит каждый параметр и добавляет запятую между ними. Таким образом, следующее:Объединение UrlRewriteFilter и struts 2 с параметрами get
search.action?q=blah
Устанавливает параметр Q на объекте критерии (см далее), чтобы:
[ blah, blah ]
Параметры устанавливаются с помощью ModelDriven<Criteria>
Там, где критерии простой класс с кучей свойств к быть установленным из строки GET.
Я затрудняюсь объяснить, почему это происходит. Кто-нибудь когда-нибудь видел что-то подобное? Я что-то делаю неправильно в отношении фильтров/перехватчиков?
Редактировать: Кажется, ParametersInterceptor
просто устанавливает параметры, содержащиеся внутри объекта ActionContext. Я не уверен (и не вижу сообщений об отладке, которые указывают), где эти значения задаются в ActionContext. Кто-нибудь хочет уточнить, как все это должно работать?
принят собственный ответ, так что он не отображается как неотвеченный – wds