本文简单介绍下如何利用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 这个是annotation 方式的国际化 访问http://localhost:8080/login.htm
Getting started with Spring ...Chapter 13 – More Spring Web MVC – internationalization, file upload and asynchronous request processing Chapter 14 – Securing applications using Spring Security
9. **国际化(Internationalization, i18n)**:Spring提供了支持多语言的工具,方便开发全球化应用。 10. **WebSocket支持**:Spring 4.x引入了对WebSocket协议的支持,可以用于实现双向通信,提高实时应用的性能...
8. **国际化(Internationalization)**:框架支持多语言错误消息,可以根据用户的首选语言显示相应的提示。 9. **自定义**:Spring Security非常灵活,允许开发者根据需求自定义大部分组件,如访问决策管理器、...
10. **国际化 (Internationalization, i18n)**:Spring 提供了i18n支持,方便应用适应多种语言环境。5.2.5 版本的改进使得多语言资源管理更加便捷。 总的来说,Spring 5.2.5.RELEASE 是一个全面、强大的Java开发...
10. **测试支持**:Spring提供了一系列的测试工具,如`@RunWith(SpringJUnit4ClassRunner.class)`和`@SpringBootTest`,使得单元测试和集成测试变得更加容易。 11. **国际化(Internationalization, i18n)**:...
6. **国际化(Internationalization, i18n)** Spring 2.0提供了对多语言环境的支持,允许开发者轻松地添加和切换不同语言的资源文件,从而实现应用的国际化。 7. **单元测试与Mock对象** Spring 2.0提供了JUnit...
7. **国际化(Internationalization,i18n)**:Spring支持资源文件来实现多语言支持。`ContextLoaderListener`可以加载这些资源文件,使Web应用可以根据用户的选择显示相应的语言。 8. **异常处理**:Spring MVC...
9. **国际化(Internationalization,i18n)**:Spring 3.0 提供了对多语言环境的支持,允许开发者轻松地为不同地区的用户提供本地化的界面和消息。 10. **测试支持**:Spring 3.0 包含了丰富的测试工具和框架,如 ...
10. **国际化(Internationalization,i18n)**:Spring提供了一套完整的i18n支持,包括消息源和资源包,使得应用能够轻松地适应不同地区的语言和文化。 通过《Spring Framework 3.2中文官方文档》,开发者可以深入...
7. **国际化(Internationalization, i18n)**:Spring 2.0增强了对多语言环境的支持,提供了更方便的工具和API来处理国际化资源。 8. **测试支持**:Spring 2.0提供了更好的测试工具和框架,如`Spring TestContext...
8. **国际化(Internationalization,i18n)**:Spring2.0提供了对国际化消息处理的支持,方便了多语言环境下的应用开发。 9. **测试框架**:Spring2.0引入了Spring Test模块,提供了一套全面的单元测试和集成测试...
15. **Internationalization (i18n) and Localization (l10n)**: Spring MVC提供对国际化和本地化的支持,允许根据不同地区展示不同的内容。 总的来说,Spring MVC为开发高效、灵活和可扩展的Web应用程序提供了强大...
9. **国际化(Internationalization,i18n)**:Spring通过MessageSource接口支持多语言环境,帮助开发者实现应用的国际化。 10. **Spring Web Services**:虽然2.5版本的Spring主要关注的是核心功能,但其也提供了...
9. **国际化(Internationalization, i18n)**:Spring提供了对多语言环境的支持,`MessageSource`接口和`ResourceBundleMessageSource`类可以帮助处理本地化信息。 10. **测试支持**:Spring 2.5.6包含丰富的测试...
9. **国际化(Internationalization, i18n)**:Spring 3.0通过MessageSource接口和ResourceBundleMessageSource类,提供了强大的国际化支持。 10. **测试框架**:Spring 3.0改进了测试支持,提供Mockito和EasyMock...
9. **国际化(Internationalization, i18n)**:Spring提供了`MessageSource`接口,用于处理多语言消息。 10. **测试支持**:Spring提供了`SpringJUnit4ClassRunner`,使得使用JUnit进行Spring应用的测试变得更加...
8. **国际化(Internationalization)**:Spring Security 允许你配置多语言支持,方便在全球范围内部署应用。 9. **自定义扩展**:Spring Security 是高度可扩展的,你可以自定义认证提供者、授权规则、过滤器等,...
10. **国际化(Internationalization, i18n)**:框架对多语言环境的处理有了更好的支持,使开发者能轻松实现应用程序的国际化。 Spring-Reference_zh_CN.chm文件是这份中文文档的离线帮助文档形式,包含所有关于...