基于请求的国际化配置是指,在当前请求内,国际化配置生效,否则自动以浏览器为主。
项目结构图:
这里不同点是,在国际化资源文件中增加参数位.例如:messages_ja.properties如下
main.target=愛してる
main.title=こんにちは {0},{1}
web.xml文件中声明spring监听与上下文资源、spring-mvc应用文件.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/context/spring-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/context/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
spring-context.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:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.pudp" />
<!-- 定义国际化消息
说明:dispatcherServlet.xml 只会在servlet做出响应,所以加载信息应该放置在servlet中.
-->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!-- 其中basename用来指定properties文件的通用名
如实例中的messages_en.properties,messages_ja.properties通用名都是messages
-->
<property name="basename" value="messages" />
<property name="defaultEncoding" value="UTF-8"/>
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
</beans>
servlet-context.xml文件中声明springmv相关,并定义国际化请求处理拦截器,处理用户请求式国际化
<?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:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven />
<context:component-scan base-package="com.pudp" />
<!-- 配置基于Session的处理,将提交上来的locale参数进行处理 -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<!-- 该属性可以不用配置 -->
<property name="defaultLocale" value="ja"></property>
</bean>
<!-- 国际化请求拦截器处理 -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
视图层实现国际化请求处理
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>spring国际化</title>
</head>
<body style="font-size: 13px;">
<span>
<a href="index.html?locale=zh">中文版</a> | <!-- 对应 messages_zh.properties文件-->
<a href="index.html?locale=ja">日文版</a> | <!-- 对应 messages_ja.properties文件-->
<a href="index.html?locale=ko">韩文版</a> | <!-- 对应 messages_ko.properties文件-->
<a href="index.html?locale=en">英文版</a> <!-- 对应 messages_en.properties文件-->
</span>
<!-- 使用message 标签配置需要显示的国际化文本,
code对应国际化文件中对应的键的名称,arguments 对应国际化属性文件中的参数。 -->
<p>
<spring:message code="main.title" arguments="苏若年,林允熙"/> ,
<spring:message code="main.target"/>
</p>
</body>
</html>
springmvc控制器类实现
package com.pudp.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
/**
* description:
*
* @author <a href='mailto:dennisit@163.com'> Cn.苏若年 (En.dennisit)</a> Copy Right since 2013-10-9
*
* com.pudp.controller.ComponentController.java
*
*/
@Controller
@RequestMapping(value="/")
public class ComponentController {
/**
* 跳转到首页视图层
*
* @author <a href='mailto:dennisit@163.com'>Cn.pudp(En.dennisit)</a> Copy Right since 2013-10-9 下午12:54:54
*
* @param request
* @param response
* @return
*/
@RequestMapping(value={"index","index.html"},method={RequestMethod.GET,RequestMethod.POST})
public ModelAndView windexPage(HttpServletRequest request, HttpServletResponse response){
return new ModelAndView("main/index");
}
}
程序首次运行结果:
因为我们默认的资源文件为日文,所以展示日语版.
当我们点击韩语版本的话,即可将系统的国际化资源设定为韩语,效果图如下
相关推荐
在SpringMVC框架中,实现国际化资源配置是提升用户体验的关键步骤,尤其对于多语言网站来说。这个Demo将向我们展示如何在SpringMVC项目中配置和使用国际化资源文件,以适应不同地区的用户需求。首先,我们需要了解...
Spring MVC 国际化实现详解 在 Spring MVC 框架中,实现国际化是...基于浏览器语言的国际化配置可以实现客户浏览器语言国际化,而基于动态加载的国际化配置可以实现基于请求的国际化配置或基于 Session 的国际化配置。
在Web应用中,Spring MVC框架结合JavaScript技术可以有效地实现基于Session的国际化,使得用户可以根据自己的语言偏好查看相应的界面内容。 1. 说明 基于Session的国际化主要是通过在用户的Session中存储所选择的...
本教程将详细讲解如何利用SpringMVC实现国际化(Internationalization,简称i18n),以提供多语言支持。 一、国际化基本概念 国际化是一种设计和开发软件的方式,使其能够适应不同的语言和文化环境。这通常涉及到...
传统的SpringMVC配置往往依赖于XML文件,如web.xml和spring-servlet.xml等,但随着Spring框架的发展,出现了基于代码的配置方式,实现了零XML配置,提高了开发效率。本文将详细介绍如何在不使用web.xml的情况下,...
在“springMVC配置好的环境”中,我们通常包括了运行 Spring MVC 应用所需的所有组件和设置,这些组件可能包括但不限于: 1. **Spring Framework**:Spring 是整个应用的基础,它提供了依赖注入(DI)、面向切面...
1. **核心配置文件**:SpringMVC的配置通常在`dispatcher-servlet.xml`中进行,这是SpringMVC的前端控制器DispatcherServlet的初始化参数。这个文件定义了处理器映射器、视图解析器、异常处理器等关键组件。 2. **...
本笔记将深入探讨如何实现SpringMVC中的语言国际化,以及在配置过程中可能遇到的问题。 1. **理解语言国际化** 国际化(i18n)是软件设计的一种方法,它允许软件产品在不同国家和地区使用时,能适应多种语言和文化...
本教程将深入讲解如何利用SpringMVC实现文件上传和下载功能,以及如何实现应用的国际化。下面我们将详细探讨这些知识点。 **一、SpringMVC文件上传** 在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver...
3. **依赖注入(DI)与Spring容器**:SpringMVC基于Spring框架,利用DI,我们可以方便地管理对象及其依赖关系。通过@Autowired注解,Spring容器可以自动将所需的bean注入到Controller或其他组件中,降低了组件间的...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在 Spring MVC 中,开发者可以方便地处理 HTTP 请求、响应,以及...
在本文中,我们将深入探讨如何基于SpringMVC框架搭建一个完整的Web项目,以及注解在其中的重要作用。 首先,让我们了解SpringMVC的基本架构。SpringMVC的核心组件包括DispatcherServlet、Controller、Model、View和...
3. **缓存策略**: 实现缓存管理,例如基于注解的缓存,如`@Cacheable`、`@CacheEvict`等,自动处理缓存的存取和清除。 4. **发布/订阅模式**: Redis支持发布订阅模式,可以用于实现消息传递,如任务调度、异步通信等...
通过《跟开涛学 SpringMVC》这本书,你可以深入学习SpringMVC的高级特性,包括RESTful API设计、文件上传下载、模板引擎使用、国际化、安全控制等。不断实践和学习,你将能掌握SpringMVC的精髓,成为一名优秀的Web...
SpringMVC框架是基于Java的,用于构建Web应用程序的轻量级MVC框架。它属于Spring框架的一部分,旨在简化Web层的开发。在Web开发中,登录控制是一个重要环节,用于判断用户是否已经登录系统,从而允许或拒绝其访问...
在`web.xml`中配置SpringMVC DispatcherServlet,以及在`servlet-context.xml`或`@Configuration`类中配置MVC相关组件,例如`CommonsMultipartResolver`,用于支持文件上传。 ```xml <!-- web.xml --> ...
在基于SpringMVC的网上书店系统中,SpringMVC负责控制层,接收HTTP请求,调用业务逻辑,并返回响应。Struts2作为SSH中的Action层,可与SpringMVC进行整合,共同处理用户的请求,提供更丰富的表单和验证功能。...
7. **国际化**:使用`<bean>`配置MessageSource,实现多语言支持。 8. **测试**:编写单元测试和集成测试,使用JUnit、Mockito和Spring Test等工具验证配置的正确性。 整合SSM框架需要对每个组件有深入的理解,...