java - JSP Spring internationalization using OSGi as service changing locale not working properly -


first of all! don't judge me reason i'm using messagesource service. since i'm in phase learning osgi , spring.

i have project has many modules, in pages, since i'm making internationalization it. saw use same messages, put codes in common module every module uses it. , shared message service osgi-context.xml:

<osgi:service ref="messagesource" interface="org.springframework.context.support.reloadableresourcebundlemessagesource"/> <osgi:service ref="localeresolver" interface="org.springframework.web.servlet.i18n.cookielocaleresolver"/> <osgi:service ref="localechangeinterceptor" interface="org.springframework.web.servlet.i18n.localechangeinterceptor"/> 

and in module-context.xml beans:

<bean id="messagesource" scope="bundle" class="org.springframework.context.support.reloadableresourcebundlemessagesource">     <property name="basename" value="classpath:messages" />     <property name="defaultencoding" value="utf-8" /> </bean>  <bean id="localeresolver" scope="bundle"       class="org.springframework.web.servlet.i18n.cookielocaleresolver">     <property name="defaultlocale" value="et" /> </bean>  <bean id="localechangeinterceptor" scope="bundle"       class="org.springframework.web.servlet.i18n.localechangeinterceptor">     <property name="paramname" value="lang" /> </bean> 

in module uses service:

<osgi:reference id="messagesource" interface="org.springframework.context.support.reloadableresourcebundlemessagesource"/> <osgi:reference id="localeresolver" interface="org.springframework.web.servlet.i18n.cookielocaleresolver"/> <osgi:reference id="localechangeinterceptor" interface="org.springframework.web.servlet.i18n.localechangeinterceptor"/> 

so internationalization works! not completely... problem comes when try change locale, partially works. jsp pages use tag message like:

<spring:message code="general.welcome"/> 

it not change! in same time pass translations using controller javascript var like:

//some page.jsp

<script>     translations = ${translations == null? '{}' : translations}; </script> 

since controllers wired messagesource:

@autowired messagesource messagesource; ... //the way request returned method //a map in json using messagesource return  model.addattribute("translations", somejsonmap); 

it's working!

so in controller locale change working, in jsp pages isn't.

do know missing? or how fix it?

thanks reading until here , sorry long question.

the problem solved removing service:

module-context.xml:

<bean id="localechangeinterceptor" scope="bundle"       class="org.springframework.web.servlet.i18n.localechangeinterceptor">     <property name="paramname" value="lang" /> </bean> 

osgi-context.xml:

<osgi:service ref="localechangeinterceptor" interface="org.springframework.web.servlet.i18n.localechangeinterceptor"/> 

and put module, using service, applicationcontext.xml:

<mvc:interceptors>     ...     <bean id="localechangeinterceptor"       class="org.springframework.web.servlet.i18n.localechangeinterceptor">         <property name="paramname" value="lang" />     </bean> </mvc:interceptors> 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -