Интернационализация с весны MVC

1

Я новичок в Spring, у меня есть рабочее двуязычное приложение на основе Spring MVC, и для того, чтобы настроить пользовательский интерфейс (css & js), я добавил это в свой конфигурационный файл Spring-MVC:

<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:annotation-driven />

Интеграция css/js работала хорошо, но интернационализации не было, когда я удаляю тег ресурсов, интернационализация начинает работать, но css включает в себя...

это мое дерево проекта:

Изображение 174551

Я считаю, что есть какой-то конфликт между двумя папками ресурсов, но я не знаю, как это решить... Спасибо!

EDIT: XML-конфигурация интернационализации в файле SpringMVC-XML-Config:

<!-- Spring Internationalizations -->

<bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

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

<bean id="localeChangeInterceptor"
    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="language" />
</bean>
<bean id="handlerMapping"
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="interceptors">
        <ref bean="localeChangeInterceptor" />
    </property>    
</bean>
Теги:
spring
spring-mvc
internationalization

1 ответ

2
Лучший ответ

Проблема Решена путем окружения LocaleChangeInterceptor с помощью тэгов-перехватчиков mvc:

<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
          <property name="paramName" value="language"></property>
    </bean>
</mvc:interceptors>

проблема возникает после добавления <mvc:annotation-driven/> потому что он объявляет свой собственный фильтр сопоставления обработчика аннотаций (LocaleChangeInterceptor проигнорирован). Поэтому мне пришлось использовать <mvc:interceptors> для регистрации компонента перехватчика I18N в моем диспетчере сервлетов.

  • 1
    Когда я окружаю LocaleChangeInterceptor тегами mvc interceptros, я получаю, что бин с именем localeChangeInterceptor не определен

Ещё вопросы

Сообщество Overcoder
Наверх
Меню