Я реализовал собственный ActionMapper, который получает локаль из URI (сам URI, а не параметры запроса). Из ActionMapper.getMapping(), как мне установить локаль для текущего действия?
Вот некоторые идеи, которые я рассмотрел:
- ActionContext.getCurrent().setLocale(). К сожалению, кажется, что новый новый ActionContext создается при вызове действия, а языковой стандарт сбрасывается до значения по умолчанию.
- Установите параметр request_locale, который будет обрабатываться перехватчиком i18n. К сожалению, перехватчик i18n настаивает на установке языкового стандарта не только для текущего действия, но и для текущего сеанса, что вызывает исключение, поскольку сеансы не включены для моего приложения.
- Установите параметр и обработайте его в самом действии, реализуя setLocale(). Прямолинейно, но это означает, что ни один из перехватчиков не будет иметь доступа к локали.
- Установите параметр и напишите перехватчик (чтобы в основном делать то же самое, что и перехватчик i18n, но без поддержки сеанса). Кажется излишним для такой простой проблемы, не говоря уже о том, чтобы заново изобретать велосипед.
Есть ли простой способ добиться этого?