URI (要求パラメーターではなく URI 自体) からロケールを取得するカスタム ActionMapper を実装しました。ActionMapper.getMapping() 内から、現在のアクションのロケールを設定するにはどうすればよいですか?
ここに私が検討したいくつかのアイデアがあります:
- ActionContext.getCurrent().setLocale(). 残念ながら、アクションが呼び出されると新しい ActionContext が作成され、ロケールがデフォルトにリセットされるようです。
- i18n インターセプターによって処理されるパラメーター request_locale を設定します。残念ながら、i18n インターセプターは、現在のアクションだけでなく現在のセッションにもロケールを設定することを要求します。アプリケーションでセッションが有効になっていないため、例外がスローされます。
- パラメータを設定し、setLocale() を実装してアクション自体で処理します。簡単ですが、どのインターセプターもロケールにアクセスできないことを意味します。
- パラメータを設定し、インターセプターを作成します (基本的に、セッションのサポートを想定せずに i18n インターセプターと同じことを行います)。車輪の再発明は言うまでもなく、このような単純な問題にはやり過ぎのように思えます。
これを達成する簡単な方法はありますか?