1、首先在src文件下添加3个properties文件

  a、message.properties

 message.username=UserName
message.password=Password

  b、message_en.properties

 message.username=UserName
message.password=Password

  c、message_zh.properties

 message.username=\u7528\u6237\u540D
message.password=\u5BC6\u7801

2、配置spring-mvc.xml文件

 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!-- 指定文件基名 -->
<property name="basename" value="message"/>
<!-- 当没有找到资源文件时,用这基名文件 -->
<property name="useCodeAsDefaultMessage" value="true" />
</bean>

  这里配置属性userCodeAsDefaultMessage=true。意思当在其他语言区域里,没有找到对应的国际化文件。比如日语区、韩语区等。默认使用message.properties文件。当为false时,显示有问题。

3、配置Controller

 @Controller
public class UserController { @RequestMapping("/updateUser")
public String update(){ return "success";
} }

4、Jsp页面

  要做jsp页面中使用国际化信息。需要添加一个fmt标签。该标签在JSTL标签表中。添加方式

 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

  index.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
</head> <body> <fmt:message key="message.username"/><input type="text" name="username" /><br/>
<fmt:message key="message.password"/><input type="text" name="password" /><br/>
</body>
</html>

  hello.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
</head> <body> <fmt:message key="message.username"/><input type="text" name="username" /><br/>
<fmt:message key="message.password"/><input type="text" name="password" /><br/>
</body>
</html>

  我们通过url访问success.jsp页面。

  访问地址:http://localhost:8080/springmvc-1/updateUser

  我们访问index.jsp页面http://localhost:8080/springmvc-1

  结果出现这样的结果

为什么JSP页面都是一样的。为什么结果不一样呢?

  原因是index.jsp页面可以直接被访问到,而success.jsp页面在WEB-INF下面,不能够直接访问,需要通过servlet转发的方式才够访问。在SpringMVC中,DispatcherServlet前端控制器,拦截了所有请求,对http://localhost:8080/springmvc-1/updateUser访问。交个SpringMVC去处理。而在spring-mvc.xml配置了ResourceBundleMessageSource,所以在success页面中可以使用国际化信息。

  综上所述:要使用基于页面的国际化信息,需要使用转发的方式才能生效。

  

SpringMVC 国际化问题的更多相关文章

  1. 【SpringMVC】SpringMVC系列14之SpringMVC国际化

    14.SpringMVC国际化 14.1.概述 14.2.用户切换选择语言

  2. springmvc国际化 基于请求的国际化配置

    springmvc国际化 基于请求的国际化配置 基于请求的国际化配置是指,在当前请求内,国际化配置生效,否则自动以浏览器为主. 项目结构图: 说明:properties文件中为国际化资源文件.格式相关 ...

  3. springmvc国际化 基于浏览器语言的国际化配置

    当前标签: springmvc   springmvc国际化 基于浏览器语言的国际化配置 苏若年 2013-10-09 13:03 阅读:305 评论:0   SpringMVC中应用Ajax异步通讯 ...

  4. 基于session 的springMvc 国际化

    项目中采用springMvc的框架,需要动态切换语言,找了一些资料,最后决定采用基于session的动态切换,实现动态切换中文,英文,韩文,其实就是把中文翻译成其他语言显示 springMvc国际化包 ...

  5. JAVA记录-SpringMVC国际化配置

    1.搭建SpringMVC框架,不过多阐述 2.spring-mvc.xml加入以下配置: <!-- 国际化资源配置,资源文件绑定器--> <bean id="messag ...

  6. 【问题记录】springmvc国际化问题

    异常-Cannot change HTTP accept header - use a different locale resolution strategy springmvc国际化时,local ...

  7. 学习SpringMVC——国际化+上传+下载

    每个星期一道菜,这个星期也不例外~~~ 一个软件,一个产品,都是一点点开发并完善起来的,功能越来越多,性能越来越强,用户体验越来越好……这每个指标的提高都需要切切实实的做点东西出来,好比,你的这个产品 ...

  8. SpringMVC 国际化

    SpringMVC学习系列(8) 之 国际化 在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢? ...

  9. SpringMVC 国际化-中英文切换

    项目结构 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: ...

  10. SpringMVC国际化支持

    这周公司领导希望我对一个项目,出一个国际化的解决方案,研究两个小时,采用了SpringMVC的国际化支持,在此记录下. 原理: 在DispatchServlet中注册localeResolver(区域 ...

随机推荐

  1. 基于marathon-lb的服务自发现与负载均衡

    参考文档: Marathon-lb介绍:https://docs.mesosphere.com/1.9/networking/marathon-lb/ 参考:http://www.cnblogs.co ...

  2. Altera FPGA AS,PS,Jtag配置模式区别

    Altera FPGA  AS,PS,Jtag配置模式区别 FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式. AS模式(active seri ...

  3. K-means + PCA + T-SNE 实现高维数据的聚类与可视化

    使用matlab完成高维数据的聚类与可视化 [idx,Centers]=kmeans(qy,) [COEFF,SCORE,latent] = pca(qy); SCORE = SCORE(:,:); ...

  4. centos7.2下解决用Mysql 使用navicate远程连接数据库出现1045 access denied for user 'root'@'localhost' using password yes

    在mysql命令行中执行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');  GRANT ALL PRIVILEGES ON *.*  ...

  5. 3.openldap生成LDAP用户

    1.用migrationtools生成用户 #yum install migrationtools -y #vim /usr/share/migrationtools/migrate_common.p ...

  6. 全国城市一卡通一级TSM平台业务架构及意义

    [导读]TSM平台是一种具有鲜明行业属性的平台,因此,各行业都建立了本行业的TSM平台.为促进城市一卡通行业移动支付的快速发展,住房和城乡建设部也建立了全国城市一卡通行业一级TSM平台. 作为住建部标 ...

  7. Scrum立会报告+燃尽图(Beta阶段第二周第六次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2414 项目地址:https://coding.net/u/wuyy694 ...

  8. Java:类集框架中集合的学习

    Java:类集框架中集合的学习 集合 Java:Set的学习 Set是类集框架中的集合类.集合是不按特定的方式排序,并且没有重复对象的一种类. Q:Set如何操作?Set中的不按特定方式排序是怎么排序 ...

  9. OpenFlow协议

    功能 1.0版本Openflow:控制器通过Openflow协议与交换机建立了安全通道(Sceure Channel),下发流表. 1.3版本Openflow:多控制器,多流表. 用于实现Contro ...

  10. struts2 不返回result的做法

    有时候 比如提交一个弹框的表单 提交成功后我们只是让表单关闭并不进行页面跳转,那么action 里面就returne null, 然后result 也不用配置了 版权声明:本文为博主原创文章,未经博主 ...