Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring localization / 8 сообщений из 8, страница 1 из 1
22.04.2012, 11:37:52
    #37765025
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
вот никак не могу настроить локализацию ) видимо что-то не понял. :)

Вот есть такой вот кусочек 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
22.04.2012, 15:12:30
    #37765164
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
Слишком очевидный вопрос?
...
Рейтинг: 0 / 0
22.04.2012, 17:12:29
    #37765256
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
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
22.04.2012, 20:57:00
    #37765435
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
IDVsbruck,

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

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

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

Думаю LocaleChangeInterceptor срабатывает только когда запросы идут на DispatcherServlet, а он у тебя замаплен на "*.form". Чтобы все работало "somepage.jsp?lang=en" должен тоже проходить через DispatcherServlet. Я так ду...
...
Рейтинг: 0 / 0
22.04.2012, 21:38:13
    #37765463
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
Ага. 100%! Запросы должны проходить через диспетчер.
...
Рейтинг: 0 / 0
23.04.2012, 06:00:51
    #37765653
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
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
23.04.2012, 14:00:34
    #37766220
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring localization
Можно сделать маппинг на все абсолютно, а в спринговском конфиге настроить статику отдельно (если она ДО сервера приложения не отдается).

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


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