项目中使用JSTL,SpringMVC会把视图由InternalView转换为JstlView。
若使用Jstl的fmt标签,需要在SpringMVC的配置文件中配置国际化资源文件。
实现过程:
1.引入jstl.jar和standard.jar两个jar文件到classpath中。
2.在src目录下新建i18n.properties,内容如下:
i18n.username=Username i18n.password=Password
3.复制i18n.properties文件为i18n_zh_CN.properties,内容如下:
i18n.username=\u7528\u6237\u540D i18n.password=\u5BC6\u7801
4.复制i18n.properties文件为i18n_en_US.properties,内容如下:
i18n.username=Username i18n.password=Password
5.在sprinvmvc.xml文件中添加国际化配置文件信息,内容如下:
6.在success.jsp视图文件中添加fmt标签的内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous"> </head> <body> <h1>Hello SpringMVC View</h1> time : ${requestScope.time} <br> <fmt:message key="i18n.username"></fmt:message> <br> <fmt:message key="i18n.password"></fmt:message> <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> </body> </html>
目录结构如下图:
测试视图index.jsp
<a href="helloworld">Hello World</a>
测试控制器代码:
package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class HelloWorld { @RequestMapping("/helloworld") public String hello(){ System.out.println("hello world"); return "success"; } }
测试方法:
1) 初次将IE浏览器首选语言设置为中文
2)将IE浏览器的首先语言优先级调整为英文优先。
注意事项:如果发现返回的中文有乱码,需要将success.jsp的编码设置为UTF-8。