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.
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,
-
welcome.htm? language = de - Liefert die Nachricht von englischen Immobilien
Datei.
-
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>
-
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.
-
1. Ländereinstellung ** - http://localhost : 8080/SpringMVC/welcome.htm? Language = de
-
2. Chinesisches Gebietsschema ** - http://localhost : 8080/SpringMVC/welcome.htm? Language = zh__CN
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