Spring MVC 3: узнайте язык внутри фильтра - PullRequest
2 голосов
/ 25 ноября 2011

Окружающая среда: В моем приложении Spring MVC 3.0.5 я пытаюсь добавить кэширование, сжатие html и некоторые другие вещи, используя фильтр, как описано здесь: http://onjava.com/pub/a/onjava/2003/11/19/filters.html?page=3

Проблема: Это работает, но, к сожалению, я не могу понять текущую локаль Spring MVC, потому что фильтр запускается до Spring MVC с его CookieLocaleResolver, LocaleChangeInterceptor и т. Д.

Решение: Есть ли обходной путь для получения локали или кто-нибудь знает хорошую альтернативу встроенного Spring для фильтров (например, перехватчик, который запускается до того, как запрос поступает на любой контроллер и заканчивается после обработки представления в виде JSP) *

1 Ответ

1 голос
/ 25 ноября 2011

Существует множество альтернатив, например, встроенных в Filters, для установки заголовков кэширования http (если это то, что вы ищете).(Например, AbstractCachingViewResolver или WebContentInterceptor )

В любом случае: Spring предоставляет интерфейс HandlerInterceptor .Какой тип перехватчика вы просили.Они просто определены внутри тега <mvc:interceptors>.

@ См. Spring Reference: Глава 15.4.1 Перехват запросов - интерфейс HandlerInterceptor

А также см. Также переполнение стекавопрос о перехватчиках.

А это Блог: аннотации Spring MVC 3.0 и заголовки HTTP / 1.1 Cache-Control для примера того, как сконфигурирован перехватчик (перехватчик веб-контента).

...