1. 搭建好tomcat服务器,并且加入spring的相关lib。实现此步骤的参考文章很多,我的环境是以前搭建好的,就直接那来用了。

2.下载jstl需要的包jstl.jar和standard.jar,并且放入WEB-INF/lib目录下。

3.修改web.xml,注册国际化需要的tag标签。在web.xml文件中加入如下的标签注册信息<taglib>

<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri> 

 <taglib-location>/WEB-INF/tld/jstl/fmt.tld</taglib-location> 

 </taglib>


顺便提示一下,上述上一段话,我开始忘记加了,结果试了半天都出不来。我们用rar软件打开jstl.jar文件,以此进入目录javax\servlet\jsp\jstl\,可以看到tlv、sql、fmt和core四个文件夹,突然发现上述的<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
中的fmt与四个文件夹中的一个同名,如果要使用另外三个标签库,也可以相应的配置。这里国际化只用到fmt标签库,所以这里只导入这一个。

在web.xml文件中加入国际化资源文件的配置,如下:

<context-param> 

 <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> 

 <param-val>message</param-val> 

 </context-param>



注意message为资源文件的名称。在此我的资源文件为message_zh_CN.properties和message_en_US.properties。

4.创建资源文件message_zh_CN.properties和message_en_US.properties,这里只做英文和中文的示例,如果还需要支持其他的语言,只需要增加相应的资源文件即可,具体的后缀可以通过ie浏览器看到,如何看?“Internet选项”--“语言...”--“添加”,应该看到了,就是那个语言列表中的后缀。

中文的资源message_zh_CN.properties的内容为:

name = \张\三 

sex = \男 

country = \中\国



看起来很奇怪是吧,我一开始也觉得奇怪,怎么放了这么写乱七八糟的东西,后来一查才知道,中文必须要用ascii码的方式来记录,麻烦。头大了,这不是要写死我,哪记得住?不过庆幸的是,jdk自带了一个转码工具native2ascii,专门将本地文件转换为ascii码来表示。我们在C盘根目录下新建一个message_zh_CN_src.properties文件,存放内容如下:

name = 张三 

sex = 男 

country = 中国


然后cmd,打开命令行窗口,敲入:native2ascii -encoding gbk C:\messages_zh_CN_src.properties C:\messages_zh_CN.properties,这样messages_zh_CN.properties文件就存放的是转码后的内容了,还比较简单。

英文资源message_en_US.properties不需要转码,内容就很简单,我这里的内容为:

name = zhangsan 

sex = male 

country = china



上述两个文件均放置在WEB-INF/classes目录下。

5. 编写测试页面message.jsp,内容如下:

<%@ page lang ge="java" contentType="text/html;charset=GBK"%> 

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%><!--导入注册的标签库--> 

<fmt:message key="name"/><!--name为properties文件中的key值->



6.启动tomcat。如果配置一切ok的话,启动成功,然后在地址栏中访问message.jsp页面。可以正常看到“张三”。在工具--Internet选项--语言...---添加...---英语(美国) [en-us],并将该选择项上移到 中文(中国) [zh-cn]的上方,重新刷新页面,可以看到zhangsa,国际化配置成功。