今天经过摸索,终于实现了额外的国际化要求了:即点击不同的国旗(其实只是文字链接也可以)切换不同界面的语言。
哎,有时候只是很心烦给老师看,一方面要老师意见,另一方面他也许心血来潮说要实现个什么东西~这不,这个国际化就是他一句话的结果,害的我研究了至少有3天啊,可我的核心内容还没有进入呢,汗啊~
简略说下实现过程吧。
就像之前我提到的学习了JSTL的4个基本库的知识,其实要国际化只会涉及到两个库:core 和 fmt,利用JAVA的绑定资源的功能来实现。
在自己的WEB应用中JSTL.JAR和STANDARD.JAR是一定要有的,否则读不了这两个库的内容,将其放在WEB-INFO 里的lib文件夹下就可以了。
再就是JSP文件的编写。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
得加在JSP页的开头
这段就是实现 点击英国国旗,实现界面显示英文的功能。
<c:url value="链接的JSP网页" var="取得变量名">
<c:param name="参数名" value="参数值"(因为我有不同的语言,所以由这个参数)/>
</c:url>
再下来就是要绑定资源了
这个basename取得名字将会在资源文件中用到,我用的是language
然后就是从资源文件读取信息,传递到页面上进行显示。
这句就是从资源文件中读取 key值为username的值,根据不同的语言,自动读取。
对了最后别忘了写</fmt:bundle>
现在就到最关键的生成资源文件的部分了,我是用JDK自带的native2ascii.exe进行转换的,因为有资料说JAVA的资源绑定机制只接受用ASCII编码的属性文件。
我是将写的文件写在写字板上用命令行进行转化的。转换过程可以参见这个网页
生出的文件记得要放在 WEB-INFO的classes文件夹下。然后重启TOMCAT,就可以看到我们要的效果啦~
之后又看到这个网页也有关于多语言JSP实现的介绍