Spring3のSessionLocaleResolverを使用してJSPで訪問者のロケールを取得する方法

StackOverflow https://stackoverflow.com/questions/7368863

質問

JSPページで訪問者のロケールを取得して、言語のリストを含むドロップダウンメニューを適切に表示し、現在のロケールに従って選択した言語を使用できるようにする必要があります。通常、私は${pageContext.request.locale}のようなことをするかもしれません。

問題は、私が思うに、ユーザーのリクエストヘッダー(ブラウザが送信するもの)に応じたロケールしか提供されないことです。ただし、ユーザーが言語/ロケールを変更した可能性があるため、セッションも確認するSpringのメカニズムを使用する必要があります。 ジェネラコディセタグプレ

しかし、JSPページでそれにアクセスし、JSPコードを使用させるのはそれほど簡単ではありません。

または、言語のドロップダウンメニューをユーザーに表示するための別の簡単なメカニズムはありますか?Springは現在のロケールをJSPから簡単にアクセスできるオブジェクトに保存しますか?

役に立ちましたか?

解決

SessionLocaleResolverを使用すると、SessionLocaleResolverクラスで指定された属性名を使用して、現在のロケールがセッションに保存されます。SessionLocaleResolverへの参照は、別の属性名(org.springframework.web.servlet.DispatcherServlet#LOCALE_RESOLVER_BEAN_NAME)を使用してリクエストに格納されます。

Javaコードを使用せずにjspページ内で直接ロケールを取得する簡単な方法がわかりません。

現在のロケールを取得し、コントローラーで選択可能な言語のリストを作成して、これをモデルに追加します。

これにより、コードがテスト可能になり、Javaコードがjspからコントローラーに移動します。

他のヒント

私たちのために ジェネラコディセタグプレ

トリックをしました。このプロパティは、Springのロケールリゾルバによって設定されたものに従います。

ワンラインソリューション.. ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top