Spring MVC Internationalisierungsbeispiel

In der Spring-MVC-Anwendung werden einige LocaleResolver zur Unterstützung der Internationalisierung oder mehrerer Sprachen bereitgestellt. In diesem Lernprogramm wird eine einfache Begrüßungsseite angezeigt. Sie zeigt die Nachricht aus der Eigenschaftendatei an und ändert das Gebietsschema basierend auf dem ausgewählten Sprachlink.

1. Projektordner

Verzeichnisstruktur dieses Beispiels.

SpringMVC-Internationalization-Folder

2. Eigenschaftendatei

Zwei Eigenschaftsdateien zum Speichern von englischen und chinesischen Nachrichten.

welcome.springmvc = Happy learning Spring MVC
  • welcome zh CN.properties **

welcome.springmvc = \u5feb\u4e50\u5b66\u4e60 Spring MVC
  • Hinweis ** Für UTF-8-Zeichen oder nicht-englische Zeichen können Sie es mit dem folgenden Befehl codieren://java/java-convert-chinese-character-to-unicode-with-native2ascii/[native2ascii].

3. Controller

Controller-Klasse, hier nichts Besonderes, alles Gebietsschema wird später in der Bean-Konfigurationsdatei des Spring konfiguriert

package com.mkyong.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. Federkonfiguration

Registrieren Sie zwei Beans, damit die Spring MVC-Anwendung die Internationalisierung unterstützt:

  • 1. SessionLocaleResolver Registrieren Sie eine Bean "SessionLocaleResolver", die genau die gleichen Zeichen " localeResolver ** " hat. Es löst die Ländereinstellungen auf, indem das vordefinierte Attribut aus der Benutzersitzung abgerufen wird.

  • Hinweis + Wenn Sie keinen „localeResolver“ registrieren, wird der Standardwert AcceptHeaderLocaleResolver ** verwendet, der das Gebietsschema auflöst, indem der Accept-Language-Header in der HTTP-Anforderung geprüft wird.

  • 2. LocaleChangeInterceptor Registrieren Sie einen Interceptor „LocaleChangeInterceptor“ und verweisen Sie auf alle Handlerzuordnungen, die mehrere Sprachen unterstützen müssen. " ParamName ** " ist der Parameterwert, mit dem das Gebietsschema festgelegt wird.

In diesem Fall,

  1. welcome.htm? language = de - Liefert die Nachricht von englischen Immobilien

Datei.

  1. welcome.htm? language = zh__CN - Liefert die Nachricht von chinesischen Immobilien

Datei.

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language"/>
    </bean>

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
        <property name="interceptors">
           <list>
            <ref bean="localeChangeInterceptor"/>
            </list>
        </property>
    </bean>

Sehen Sie sich das vollständige Beispiel unten an **

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en"/>
    </bean>

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language"/>
    </bean>

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
        <property name="interceptors">
           <list>
            <ref bean="localeChangeInterceptor"/>
           </list>
        </property>
    </bean>

    <!-- Register the bean -->
    <bean class="com.mkyong.common.controller.WelcomeController"/>

    <!-- Register the welcome.properties -->
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="welcome"/>
    </bean>

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

</beans>
  1. JSP

Eine JSP-Seite enthält zwei Hyperlinks zum manuellen Ändern des Gebietsschemas. Verwenden Sie die spring: message , um die Nachricht aus der entsprechenden Eigenschaftendatei anzuzeigen, indem Sie das Gebietsschema des aktuellen Benutzers prüfen.

  • WelcomePage.jsp **

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

Language : <a href="?language=en">English</a>|<a href="?language=zh__CN">Chinese</a>

<h2>
welcome.springmvc : <spring:message code="welcome.springmvc" text="default text"/>
</h2>

Current Locale : ${pageContext.response.locale}

</body>
</html>
  • Hinweis ** Mit $ \ {pageContext.response.locale} kann das Gebietsschema des aktuellen Benutzers angezeigt werden.

  • Warnung ** + Denken Sie daran, den Text "<% @ page contentType ="/html; charset = UTF-8 ''%> "oben auf der Seite zu setzen, andernfalls kann die Seite das UTF-8 (Chinesisch) nicht anzeigen Zeichen richtig.

7. Demo

Rufen Sie es über http://localhost : 8080/SpringMVC/welcome.htm auf. Ändern Sie das Gebietsschema, indem Sie auf den Link der Sprache klicken.

SpringMVC-Internationalization-Example-1

  • 2. Chinesisches Gebietsschema ** - http://localhost : 8080/SpringMVC/welcome.htm? Language = zh__CN

SpringMVC-Internationalization-Example-2

Quellcode herunterladen

Laden Sie den Link herunter://wp-content/uploads/2010/08/SpringMVC-Internationalization-Example.zip[SpringMVC-Internationalization-Example.zip](8KB)

Referenz

MVC LocaleResolver-Dokumentation]

link://tag/multiple-languages ​​/[mehrere Sprachen] spring mvc