Die Lokalisierung von Spring ändert nicht die Sprache

8

Das Thema ist im Thema - Ich kann nicht herausfinden, was das Problem mit Gebietsschemas in meiner Spring MVC-Anwendung wechseln ist. Als Tutorial habe ich diesen Link verwendet + Ich habe verschiedene Varianten ausprobiert, die ich in Google gefunden habe. Wenn ich auf meine Webseiten-Links klicke, um die Sprache zu ändern, wird die Zeichenfolge ?lang=XX an die Adresse angehängt, aber nichts passiert.

Hier ist meine servlet-context.xml

%Vor%

Mein Controller:

%Vor%

index.jsp

%Vor%

Und ich habe messages_en.properties und messages_ru.properties in meinem src/main/resources Verzeichnis. Anscheinend habe ich einige Details verpasst, aber ich kann das Problem definitiv nicht verstehen. Übrigens, wenn ich den Wert in <beans:property name="defaultLocale" value="en"/> ändere, ändern sich die Sprachen richtig. Ich würde deine Hilfe wirklich schätzen.

    
Vadim Chekry 22.02.2012, 18:32
quelle

4 Antworten

21

<mvc:annotaion-driven /> überschreibt LocaleChangeInterceptor , das in Ihrer XML-Konfiguration definiert ist. Versuchen Sie, dies hinzuzufügen (nach spring reference ) zu XML config:

%Vor%

oder versuchen Sie, <mvc:annotaion-driven /> loszuwerden, was hier .

    
kurochenko 22.02.2012, 19:50
quelle
6

Das hat auch für mich funktioniert. Hinweis für andere: Ich könnte mich irren, aber es scheint, dass mvc:interceptors erforderlich ist, wenn Sie Spring MVC 3.1 verwenden. Beachten Sie auch, wenn Sie mvc:interceptors verwenden, stellen Sie sicher, dass Sie die Handler-Mapping-Bean NICHT haben:

%Vor%

Diese Bean verursacht den Fehler:

  

"Der Verweis auf die Bean 'localeChangeInterceptor' kann nicht aufgelöst werden, während die Bean-Eigenschaft 'interceptors' gesetzt wird"   Dies war die Ursache meiner 8-stündigen Frustration.

    
user1250852 29.10.2013 01:13
quelle
0

Ich hatte das gleiche Problem, aber ich habe es gelöst, indem ich nur localeChangeInterceptor bean in Interceptors verweise ... es funktioniert perfekt.

%Vor%     
Navaneet Badami 29.03.2015 20:00
quelle
0

Wenn wir schreiben: <mvc:annotation-driven /> Es registriert ein RequestMappingHandlerMapping, ein RequestMappingHandlerAdapter und ein ExceptionHandlerExceptionResolver (und viele andere Dinge) zur Unterstützung von Verarbeitungsanforderungen mit annotierten Controller-Methoden unter Verwendung von Annotationen wie @RequestMapping, @ExceptionHandler und anderen. Es bietet auch eine Standardimplementierung für SimpleUrlHandlerMapping. Wenn Sie die Standardimplementierung überschreiben möchten - in Ihrem Fall möchten Sie einen Interceptor bereitstellen, können Sie dies tun, indem Sie Ihre Interceptor-Bean wie folgt registrieren:

%Vor%     
PRABHAT KUMAR 20.04.2015 15:25
quelle

Tags und Links