Как мне получить используемый в настоящее время языковой стандарт Spring MVC? - PullRequest
1 голос
/ 21 марта 2011

У меня есть следующая форма.

<form id="langForm" action="" method="get">
    <select name="lang" id="lang" class="styled" onchange="this.form.submit();">
        <option value="pl" ${param.lang == 'pl' ? 'selected' : ''} >PL</option>
        <option value="en" ${param.lang == 'en' ? 'selected' : ''} >EN</option>
    </select>
</form>

Spring MVC устанавливает языковой параметр и заботится о i18n / l10n.Я хотел бы изменить ${param.lang}, чтобы он мог получать текущий пользовательский язык из сеанса Spring MVC, потому что параметр lang не обязательно присутствует в каждом запросе.Как мне этого добиться?

1 Ответ

1 голос
/ 12 мая 2011

Добавьте пар в вашей конфигурации xml:

...

<mvc:interceptors>
        <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
            p:paramName="lang" />
    </mvc:interceptors>

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:messages" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>
    <bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver"
        id="localeResolver" p:cookieName="locale" />
...

Замените ваш код на:

<form id="langForm" action="" method="get">
    <select name="lang" id="lang" class="styled" onchange="this.form.submit();">
        <option value="pl">PL</option>
        <option value="en">EN</option>
    </select>
</form>

При такой конфигурации выбранный языковой стандарт будет сохранен в браузере файлов cookie.

не забывайте пространства имен в начале файла в теге: XMLNS: = MVC "http://www.springframework.org/schema/mvc" и

XSI: SchemaLocation = "http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

учебник здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...