Spring MVC国際化の例
Spring MVCアプリケーションでは、国際化または多言語機能をサポートするための「LocaleResolver」がいくつか付属しています。 このチュートリアルでは、シンプルなウェルカムページを表示し、プロパティファイルからメッセージを表示し、選択した言語リンクに基づいてロケールを変更します。
1. プロジェクトフォルダ
この例のディレクトリ構造。
2. プロパティファイル
英語と中国語のメッセージを保存する2つのプロパティファイル。
welcome.properties
welcome.springmvc = Happy learning Spring MVC
welcome_zh_CN.properties
welcome.springmvc = \u5feb\u4e50\u5b66\u4e60 Spring MVC
Note
UTF-8または英語以外の文字の場合、native2asciiツールを使用してエンコードできます。
3. コントローラ
コントローラークラス、ここでは特別なものはありませんが、すべてのロケールは、後でSpringのBean構成ファイルで構成されます
package com.example.common.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class WelcomeController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView model = new ModelAndView("WelcomePage"); return model; } }
4. スプリング構成
Spring MVCアプリケーションが国際化をサポートするようにするには、2つのBeanを登録します。
1. SessionLocaleResolver
「SessionLocaleResolver」Beanを登録し、まったく同じ文字「localeResolver」という名前を付けます。 ユーザーのセッションから定義済みの属性を取得することにより、ロケールを解決します。
Note
「localeResolver」を登録しない場合、デフォルトのAcceptHeaderLocaleResolverが使用され、HTTPリクエストのaccept-languageヘッダーをチェックしてロケールを解決します。
2. LocaleChangeInterceptor
「LocaleChangeInterceptor」インターセプターを登録し、複数の言語をサポートする必要があるハンドラーマッピングを参照します。 「paramName」は、ロケールを設定するために使用されるパラメータ値です。
この場合、
-
welcome.htm?language=en – Get the message from English properties file.
-
welcome.htm?language=zh_CN – Get the message from Chinese properties file.
以下の完全な例を参照してください
mvc-dispatcher-servlet.xml
5. JSP
JSPページには、ロケールを手動で変更するための2つのハイパーリンクが含まれており、spring:messageを使用して、現在のユーザーのロケールを確認することにより、対応するプロパティファイルからのメッセージを表示します。
WelcomePage.jsp
Note
$ \ {pageContext.response.locale}を使用して、現在のユーザーのロケールを表示できます。
Warning
「<%@ page contentType =” text / html; charset = UTF-8″%>」をページの上部に配置することを忘れないでください。そうしないと、ページがUTFを表示できない場合があります。 -8(中国語)文字が適切に。
7. Demo
http://localhost:8080/SpringMVC/welcome.htmを介してアクセスし、言語のリンクをクリックしてロケールを変更します。
1. English locale –http://localhost:8080/SpringMVC/welcome.htm?language=en
2. Chinese locale –http://localhost:8080/SpringMVC/welcome.htm?language=zh_CN
ソースコードをダウンロード
ダウンロード–SpringMVC-Internationalization-Example.zip(8KB)