首先创建一个maven项目,在pom.xml里面写上这些
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.12.RELEASE</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies>
web.xml配置
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- spring-mvc具体的配置文件 --> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> <!-- servlet加载的优先级,当值大于等于0时在应用启动时就加载这 个servlet,值越小优先级越高。 当值为负数或未指定时servlet被使用时才加载 --> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- spring-mvc能够处理的请求要匹配如下格式 --> <url-pattern>/</url-pattern> </servlet-mapping>
spring-mvc.xml配置
<!--Spring MVC的配置文件,包含网站跳转逻辑的控制,配置 --> <context:component-scan base-package="com.shz.*" /> <context:annotation-config/> <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <mvc:annotation-driven /> <!-- 存储区域设置信息 --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" /> <!-- 国际化资源文件 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:messages" /> </bean> <mvc:interceptors> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="lang" /> </bean> </mvc:interceptors>
两个国际化资源文件
messages_en_US.properties和messages_zh_CN.properties其中的en_US和zh_CN可以去ie浏览器里面去看(设置按钮-Internet选项-语言-添加)你就可以看到各个国家的格式,就是说你要写哪个国家的语言就要按照这个格式来。
<property name="basename" value="classpath:messages" />
这个是找messages开头的文件,你也也可以放在某个文件夹下面,比如classpath:messages/messages就是放在messages文件夹下面以messages开头的资源文件,也就是messages_en_US.properties和messages_zh_CN.properties,在这个配置文件的最后配置的是一个拦截器,该拦截器通过名为”lang”的参数来拦截HTTP请求,使其重新设置页面的区域化信息
messages_en_US.properties:
language.cn = Chinese language.en = English internationalisation = Internationalisation welcome = Welcome to Song Haozhi's blog,URL:http://blog.csdn.net/qq_26173219/
messages_zh_CN.properties:
language.cn = \u4e2d\u6587 language.en = \u82f1\u6587 internationalisation = \u56fd\u9645\u5316 welcome = \u6b22\u8fce\u8bbf\u95ee\u201c\u5b8b\u6d69\u5fd7\u7684\u535a\u5ba2\u201d\uff0cURL\uff1ahttp://blog.csdn.net/qq_26173219/
后台action处理请求,跳转页面
@Controller public class TestAction { @RequestMapping(value = "/hello") public ModelAndView welcome() { ModelAndView modelAndView = new ModelAndView("welcome"); return modelAndView; } }
首页的index.jsp页面写上
<% response.sendRedirect("hello"); %>
意思就是项目启动之后就请求hello方法,也就是让action中的welcome方法处理这个请求
welcome.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="mvc" uri="http://www.springframework.org/tags/form" %> <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>SpringMVC<spring:message code="internationalisation" /></title> </head> <body> Language: <a href="?lang=zh_CN"><spring:message code="language.cn" /></a> - <a href="?lang=en_US"><spring:message code="language.en" /></a> <h2> <spring:message code="welcome" /> </h2> </body> </html>
在需要使用国际化处理的地方使用Spring的message标签,code属性对应资源文件中的“键”名称
最后显示看下图
源码下载http://download.csdn.net/download/qq_26173219/10246147