`
jinbingchuan
  • 浏览: 9778 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring internationalization with CookieResolve

 
阅读更多

 本文简单介绍下如何利用spring3.0 改变cookie来进行国际化,当然spring国际化有几种方式,本文只是简单使用cookie这种方式,配置的大致代码如下

  

applicationcontext.xml

 

<bean id="messageSource"

class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basename">

<value>message</value>

</property>

</bean>

 

<bean id="localeResolver"

class="org.springframework.web.servlet.i18n.CookieLocaleResolver">

<property name="cookieName" value="clientlanguage" />

<property name="cookieMaxAge" value="94608000" />

<property name="defaultLocale" value="zh" />

</bean>

 

messageSource 这个主要是加载国际化文件和配置文件的前缀,CookieLocaleResolver这个主要是用来配置cookie存活时间和默认显示。

 

下面是配置文件名称的格式

resource files

message_en.properties

message_zh.properties

 

  控制改变cookie code:

 

package com.softterk.controller.front;

 

import java.util.Locale;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.log4j.Logger;

import org.springframework.beans.propertyeditors.LocaleEditor;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.servlet.LocaleResolver;

import org.springframework.web.servlet.support.RequestContext;

import org.springframework.web.servlet.support.RequestContextUtils;

 

import com.softterk.util.AjaxUtil;

 

@Controller

public class ChangeLanguageController {

 

   private static Logger LOG =Logger.getLogger(ChangeLanguageController.class);

   

   @RequestMapping(value="/changelanguage",method=RequestMethod.POST)

   public void changelanguage(@RequestParam String new_lang,HttpServletResponse response,HttpServletRequest request)

   {

  LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);

  if (localeResolver == null) {  

    LOG.error("No LocaleResolver found: not in a DispatcherServlet request?");

    throw new IllegalStateException("No LocaleResolver found: not in a DispatcherServlet request?");  

}

 

  LocaleEditor localeEditor = new LocaleEditor();

  localeEditor.setAsText(new_lang);

  localeResolver.setLocale(request, response, (Locale)localeEditor.getValue());  

  RequestContext requestContext = new RequestContext(request);

  Locale locale = requestContext.getLocale();

  request.setAttribute("locale", locale.toString());   

  if(LOG.isDebugEnabled())

    LOG.debug("locale=="+locale.toString());

    AjaxUtil.backData(response, "1");

   }

}

 

 

jsp page:这里写的是一个js 方法,用来动态改变。

 

function changeLanguage(language)

   {

       $.ajax({

           type: "POST",

           url: "<%=path%>/changelanguage",

           data: "new_lang="+language,

           dataType:"text",

           async: true,

           error: function(data, error) {

          alert("error!please try it again soon");

          },

          success: function(data)

          {

             window.location.reload();

          }

      });

   }

 

获得配置文件的内容的话,就直接使用jstl的fmt和spring的标签都可以获得。

 

 

分享到:
评论

相关推荐

    Spring MVC internationalization annotation example

    Spring MVC internationalization annotation example 这个是annotation 方式的国际化 访问http://localhost:8080/login.htm

    Getting.started.with.Spring.Framework.2nd.Edition1491011912.epub

    Getting started with Spring ...Chapter 13 – More Spring Web MVC – internationalization, file upload and asynchronous request processing Chapter 14 – Securing applications using Spring Security

    Spring Framework 4.1.3 API Documentation参考文档CHM版

    9. **国际化(Internationalization, i18n)**:Spring提供了支持多语言的工具,方便开发全球化应用。 10. **WebSocket支持**:Spring 4.x引入了对WebSocket协议的支持,可以用于实现双向通信,提高实时应用的性能...

    spring-5.2.5.RELEASE-dist.zip

    10. **国际化 (Internationalization, i18n)**:Spring 提供了i18n支持,方便应用适应多种语言环境。5.2.5 版本的改进使得多语言资源管理更加便捷。 总的来说,Spring 5.2.5.RELEASE 是一个全面、强大的Java开发...

    spring4.1.9源码

    10. **测试支持**:Spring提供了一系列的测试工具,如`@RunWith(SpringJUnit4ClassRunner.class)`和`@SpringBootTest`,使得单元测试和集成测试变得更加容易。 11. **国际化(Internationalization, i18n)**:...

    Spring2.0中文教程

    6. **国际化(Internationalization, i18n)** Spring 2.0提供了对多语言环境的支持,允许开发者轻松地添加和切换不同语言的资源文件,从而实现应用的国际化。 7. **单元测试与Mock对象** Spring 2.0提供了JUnit...

    Spring-5.1.5源码

    7. **国际化(Internationalization,i18n)**:Spring支持资源文件来实现多语言支持。`ContextLoaderListener`可以加载这些资源文件,使Web应用可以根据用户的选择显示相应的语言。 8. **异常处理**:Spring MVC...

    spring security 官方文档

    8. **国际化(Internationalization)**:框架支持多语言错误消息,可以根据用户的首选语言显示相应的提示。 9. **自定义**:Spring Security非常灵活,允许开发者根据需求自定义大部分组件,如访问决策管理器、...

    spring3开发文档

    9. **国际化(Internationalization,i18n)**:Spring 3.0 提供了对多语言环境的支持,允许开发者轻松地为不同地区的用户提供本地化的界面和消息。 10. **测试支持**:Spring 3.0 包含了丰富的测试工具和框架,如 ...

    Spring Framework 3.2中文官方文档

    10. **国际化(Internationalization,i18n)**:Spring提供了一套完整的i18n支持,包括消息源和资源包,使得应用能够轻松地适应不同地区的语言和文化。 通过《Spring Framework 3.2中文官方文档》,开发者可以深入...

    spring-framework-2.0

    7. **国际化(Internationalization, i18n)**:Spring 2.0增强了对多语言环境的支持,提供了更方便的工具和API来处理国际化资源。 8. **测试支持**:Spring 2.0提供了更好的测试工具和框架,如`Spring TestContext...

    spring2.0 核心jar包

    8. **国际化(Internationalization,i18n)**:Spring2.0提供了对国际化消息处理的支持,方便了多语言环境下的应用开发。 9. **测试框架**:Spring2.0引入了Spring Test模块,提供了一套全面的单元测试和集成测试...

    spring MVC .docx

    15. **Internationalization (i18n) and Localization (l10n)**: Spring MVC提供对国际化和本地化的支持,允许根据不同地区展示不同的内容。 总的来说,Spring MVC为开发高效、灵活和可扩展的Web应用程序提供了强大...

    Spring Reference 2.5 中文

    9. **国际化(Internationalization,i18n)**:Spring通过MessageSource接口支持多语言环境,帮助开发者实现应用的国际化。 10. **Spring Web Services**:虽然2.5版本的Spring主要关注的是核心功能,但其也提供了...

    spring2.5.6源代码及api

    9. **国际化(Internationalization, i18n)**:Spring提供了对多语言环境的支持,`MessageSource`接口和`ResourceBundleMessageSource`类可以帮助处理本地化信息。 10. **测试支持**:Spring 2.5.6包含丰富的测试...

    spring3.0包文件

    9. **国际化(Internationalization, i18n)**:Spring 3.0通过MessageSource接口和ResourceBundleMessageSource类,提供了强大的国际化支持。 10. **测试框架**:Spring 3.0改进了测试支持,提供Mockito和EasyMock...

    Spring源码-interface21

    9. **国际化(Internationalization, i18n)**:Spring提供了`MessageSource`接口,用于处理多语言消息。 10. **测试支持**:Spring提供了`SpringJUnit4ClassRunner`,使得使用JUnit进行Spring应用的测试变得更加...

    Spring Security 3 中文 chm

    8. **国际化(Internationalization)**:Spring Security 允许你配置多语言支持,方便在全球范围内部署应用。 9. **自定义扩展**:Spring Security 是高度可扩展的,你可以自定义认证提供者、授权规则、过滤器等,...

    spring2.5中文文档

    10. **国际化(Internationalization, i18n)**:框架对多语言环境的处理有了更好的支持,使开发者能轻松实现应用程序的国际化。 Spring-Reference_zh_CN.chm文件是这份中文文档的离线帮助文档形式,包含所有关于...

Global site tag (gtag.js) - Google Analytics