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.
<mvc:annotaion-driven />
überschreibt LocaleChangeInterceptor
, das in Ihrer XML-Konfiguration definiert ist. Versuchen Sie, dies hinzuzufügen (nach spring reference ) zu XML config:
oder versuchen Sie, <mvc:annotaion-driven />
loszuwerden, was hier .
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:
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.
Ich hatte das gleiche Problem, aber ich habe es gelöst, indem ich nur localeChangeInterceptor bean in Interceptors verweise ... es funktioniert perfekt.
%Vor% 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:
Tags und Links java spring-mvc localization