Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > SpringMVC интернационализация


Автор: polosatij 23.1.2009, 03:23

нет интернационализации при вызове locale=ru_RU, страница, как показывается в default-ном немецком, так и показывалась, вот spring-servlet.xml

Код

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:compass="http://www.compass-project.org/schema/spring-core-config"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.compass-project.org/schema/spring-core-config
       http://www.compass-project.org/schema/spring-compass-core-config-2.1.xsd">

    <!-- Activates @Autowired -->
    <context:annotation-config/>
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="order" value="2"/>
    </bean>
    
    <import resource="applicationContext.xml" />

    <!-- VELOCITY -->
    <bean id="velocityConfig"
        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <property name="resourceLoaderPath" value="/WEB-INF/templates/" />
        <property name="configLocation" value="/WEB-INF/velocity/velocity.properties"/>
    </bean>

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="cache" value="true" />
        <property name="prefix" value="" />
        <property name="suffix" value=".html" />
        <property name="toolboxConfigLocation" value="/WEB-INF/velocity/toolbox.xml" />
    </bean>

    <!-- controllers -->
    <import resource="spring/pages-controller.xml" />

    <bean id="urlMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>


    <!-- I18N -->

    <!-- Declare the Interceptor -->
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="locale" />
    </bean>

    <!-- Declare the Resolver -->
    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

    <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="defaultEncoding" value="UTF-8" />
        <property name="basenames">
            <list>
                <!-- pages -->
                <value>/WEB-INF/i18n/page.index</value>
            </list>
        </property>
    </bean>

    <!-- IBATIS -->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.user}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="/WEB-INF/ibatis/sql-map-config.xml" />
    </bean>

    <bean id="mEventDAO" class="com.ti.data.event.EventDAO">
        <property name="sqlMapClient" ref="sqlMapClient" />
    </bean>

    ....
    
    <!--   -->
    
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- COMPASS -->
    <import resource="spring/compass-controller.xml" />

    <!-- Compass beans -->
    <import resource="spring/compass-beans.xml" />
        
</beans>


не могу найти ни одной зацепки  smile  smile 

Автор: ivg 23.1.2009, 03:58
А файлы /WEB-INF/i18n/page.index_ru.properties или /WEB-INF/i18n/page.index_ru_RU.properties или /WEB-INF/i18n/page.index_ru.xml(в формате properties) и т. д. существуют и в них(нём) для нужного свойства определено значение?

Автор: polosatij 23.1.2009, 11:48
Цитата(ivg @  23.1.2009,  03:58 Найти цитируемый пост)
/WEB-INF/i18n/page.index_ru_RU.properties


конечно, да.. лежат там же, где и немецкий  smile 

мне почему-то кажется, что дело не в spring-е.. т.к. раньше всё работало. а вот, после какого именно момента сказать не могу  smile млин  smile 

Автор: ivg 23.1.2009, 13:40
Точки в имени не должно быть., скорей всего. Во всяком случае, java.util.ResourceBundle с точкой не находит.

Автор: polosatij 23.1.2009, 14:10
Цитата(ivg @  23.1.2009,  13:40 Найти цитируемый пост)
Точки в имени не должно быть., скорей всего. Во всяком случае, java.util.ResourceBundle с точкой не находит. 


странно.. нo немецкий ведь находит!? сегодня вечером проверю твою версию  smile 

Автор: polosatij 24.1.2009, 07:19

 smile что есть точка, что нет, эффект один и тот же.. не Лаботает  smile млин  smile  smile 

Автор: ivg 24.1.2009, 07:52
Цитата(polosatij @  24.1.2009,  09:19 Найти цитируемый пост)
не Лаботает

А как проверяешь?
Бин с id="messageSource" нигде больше случайно не определён?

Автор: polosatij 24.1.2009, 17:08
Цитата(ivg @  24.1.2009,  06:52 Найти цитируемый пост)
А как проверяешь?


ню.. как-как.. заменил просто все точки на "_"  smile 


Цитата(ivg @  24.1.2009,  06:52 Найти цитируемый пост)
Бин с id="messageSource" нигде больше случайно не определён? 


не-а  smile 

придётся сегодня частями отключать приложение работая топором и смотреть что же  smile  

Автор: ivg 24.1.2009, 17:28
Цитата(polosatij @  24.1.2009,  19:08 Найти цитируемый пост)
как-как.. заменил просто все точки на "_"

Не, я имел ввиду, что ты сделал, чтобы выводилось на русском, почему должно выводиться на русском? Поменял локаль в системе? В приложениии? В браузере? В вызывающем коде напрямую указываешь локаль?

Автор: polosatij 24.1.2009, 17:30
Цитата(ivg @  24.1.2009,  16:28 Найти цитируемый пост)
Не, я имел ввиду, что ты сделал, чтобы выводилось на русском, почему должно выводиться на русском? Поменял локаль в системе? В приложениии? В браузере? В вызывающем коде напрямую указываешь локаль? 


url поменял - добавил locale=ru_RU.. млин, раньше работало  smile 

Автор: polosatij 24.1.2009, 22:59


нашёл такую особенность, вот этот код не работает:

Код

@Controller
public class IndexController {

    @RequestMapping("/index.html")
    public ModelAndView handleRequest(final HttpServletRequest pRequest) throws Exception {
        final ModelAndView modelAndView = new ModelAndView(PageName.INDEX);

        return modelAndView;
    }

}


а этот работает:

Код

package com.ti.spring.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import com.ti.constants.PageName;

public class IndexController extends AbstractController {

    protected ModelAndView handleRequestInternal(final HttpServletRequest arg0,
            final HttpServletResponse arg1) throws Exception {
        final ModelAndView modelAndView = new ModelAndView(PageName.INDEX);

        return modelAndView;
    }

}


хм.. пока не понял, в чём именно причина, но хорошо, что нашёл кусок не работающий  smile 

Автор: polosatij 25.1.2009, 11:07

нашёл траблу  smile 

с появлением анотаций не хватала:

Код

    <!-- Enables explicit @RequestMapping("path") annotations -->
    <bean id="annotationMapping"
          class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"
          p:order="2"
          p:interceptors-ref="localeChangeInterceptor"
    />


 smile  smile 

чего я толком не пойму.. я так понимаю, узнать о том, не хватает ли чего врядли получится в этой системе osgi?  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)