1. ホーム
  2. spring

Springから現在のユーザーロケールを関数にパラメータとして渡さずに取得する方法は?

2023-12-15 04:17:55

質問内容

Spring 3.1を使用していて、現在のユーザーに対して有効なロケールを見つけたいのですが、コントローラからサービス層へロケールを渡すことなく直接取得する方法はありますか...?

Springはロケールをスレッドローカルストレージに保存し、静的メソッドを呼び出すことでそれを取得することができるのでしょうか?

どのように解決するのですか?

を渡さずにロケールにアクセスする方法も探していました。 Locale を渡さずにロケールにアクセスする方法も探していましたが、私はまだSpringにかなり慣れていないので、ほとんどのソリューションが分かりにくいことが分かりました。しかし、Spring MVCはロケールをスレッドローカルストレージに保存していることがわかりました。それは、アクセスすることができます。

Locale locale = LocaleContextHolder.getLocale();

最後のアプローチ [...] は、あなたのアーキテクチャの任意のエンティティで現在のロケールを提供するために、スレッドローカルをベースとしたものです。[...] LocaleContextHolderの内容は、デフォルトではWebリクエスト内で指定されたロケールに対応することに注意しなければなりません。

からです。 Spring MVC 3でロケール切り替えを設定する . (その投稿では、ロケールを取得するための別の設定/メソッドも提供しているので、これを行うことを検討している人には便利かもしれません)。

を表示することもできます。 LocaleContextHolder のドキュメントを参照してください。 はこちら .