Spring MVCの国際化の例

Spring MVC国際化の例

Spring MVCアプリケーションでは、国際化または多言語機能をサポートするための「LocaleResolver」がいくつか付属しています。 このチュートリアルでは、シンプルなウェルカムページを表示し、プロパティファイルからメッセージを表示し、選択した言語リンクに基づいてロケールを変更します。

1. プロジェクトフォルダ

この例のディレクトリ構造。

SpringMVC-Internationalization-Folder

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」は、ロケールを設定するために使用されるパラメータ値です。

この場合、

  1. welcome.htm?language=en – Get the message from English properties file.

  2. welcome.htm?language=zh_CN – Get the message from Chinese properties file.

    
        
    

    
        
           
            
            
        
    

以下の完全な例を参照してください
mvc-dispatcher-servlet.xml



    
        
    

    
        
    

    
        
           
            
           
        
    

    
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

5. JSP

JSPページには、ロケールを手動で変更するための2つのハイパーリンクが含まれており、spring:messageを使用して、現在のユーザーのロケールを確認することにより、対応するプロパティファイルからのメッセージを表示します。

WelcomePage.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>


Spring MVC internationalization example

Language : English|Chinese

welcome.springmvc :

Current Locale : ${pageContext.response.locale}

Note
$ \ {pageContext.response.locale}を使用して、現在のユーザーのロケールを表示できます。

Warning
「<%@ page contentType =” text / html; charset = UTF-8″%>」をページの上部に配置することを忘れないでください。そうしないと、ページがUTFを表示できない場合があります。 -8(中国語)文字が適切に。

7. Demo

http://localhost:8080/SpringMVC/welcome.htmを介してアクセスし、言語のリンクをクリックしてロケールを変更します。

SpringMVC-Internationalization-Example-1

SpringMVC-Internationalization-Example-2

ソースコードをダウンロード

ダウンロード–SpringMVC-Internationalization-Example.zip(8KB)