powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring localization
8 сообщений из 8, страница 1 из 1
Spring localization
    #37765025
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот никак не могу настроить локализацию ) видимо что-то не понял. :)

Вот есть такой вот кусочек springapp-servlet.xml :

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="ru" />
    </bean>

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="messages" />
    </bean>



еще есть два файла:

messages_ru.properties
Код: sql
1.
welcome=WelcomeFromRu



messages_en.properties
Код: sql
1.
welcome=WelcomeFromEn



и простой blog.jsp :

Код: html
1.
2.
3.
4.
5.
6.
7.
<%@ page contentType="text/html; charset=UTF-8" session="false" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
   <body>
      <h1><spring:message code="welcome"/></h1>
   </body>
</html>



то на странице

localhost:8080/myapp/blog.jsp

всегда выводится

Код: sql
1.
WelcomeFromRu



даже если поменять defaultLocale в springapp-servlet.xml на en

то результат тот же ( я опускаю, что я остановил Tomcat, и удалил приложение и заново его задеплоил ).

Причем результат тот же если и вот так обращаться:

localhost:8080/myapp/blog.jsp?lang=en

в web.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>springapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>
<!--
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
-->
<!--
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
-->

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/springapp-servlet.xml</param-value>
    </context-param>

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>



Что необходимо еще настроить, чтобы локализация правильно работала?
...
Рейтинг: 0 / 0
Spring localization
    #37765164
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слишком очевидный вопрос?
...
Рейтинг: 0 / 0
Spring localization
    #37765256
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spring 3.1?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<beans ...
	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.1.xsd
		...">

<mvc:interceptors>
	<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
		<property name="paramName" value="lang"/>
	</bean>
</mvc:interceptors>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
	<property name="defaultLocale" value="en"/>
</bean>

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



Думаю, что основное - использование не SessionResolver, а CookieResolver (с первым у меня тоже не пашет). Но на всякий случай привел весь конфигурационный код, относящийся к данной теме.
...
Рейтинг: 0 / 0
Spring localization
    #37765435
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

И как потом на странице переключается локализация?

просто somepage.jsp?lang=en

?
...
Рейтинг: 0 / 0
Spring localization
    #37765456
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scymaks,

Думаю LocaleChangeInterceptor срабатывает только когда запросы идут на DispatcherServlet, а он у тебя замаплен на "*.form". Чтобы все работало "somepage.jsp?lang=en" должен тоже проходить через DispatcherServlet. Я так ду...
...
Рейтинг: 0 / 0
Spring localization
    #37765463
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. 100%! Запросы должны проходить через диспетчер.
...
Рейтинг: 0 / 0
Spring localization
    #37765653
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

а как правильно сделать маппинг и на *.jsp ?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
    
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>



Вот если вот так вот ( Tomcat 6 ), то тогда на все *.jsp получаю ответ от Tomcat что адрес не доступен. Можно какой-то микропример?
...
Рейтинг: 0 / 0
Spring localization
    #37766220
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать маппинг на все абсолютно, а в спринговском конфиге настроить статику отдельно (если она ДО сервера приложения не отдается).

Если ты не сделал маппинг на *.jsp, то почему не будет ругаться? - Все логично.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring localization
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]