jsp使用jstl标签实现国际化

在某一些项目中须要界面展现的国际化(i18n),即根据用户需求显示不一样的语言,在jsp上有多个实现方案,可是对于jstl的方案网上资料不是很齐全,这里我给出一个使用jstl标签库实现的例子,演示代码能够在这里找到。 html

一、准备 java

jstl标签库jar包 git

相应语言资源的properties文件,推荐使用propertieseditor编辑,有eclipse插件也有单独编辑器 session

二、开发步骤 eclipse

为了演示开发过程,这里准备一个用户登陆的程序,代码在这里http://git.oschina.net/songxinqiang/Samplesjsp

登录页面首先判断sesion里面有没有设置语言,没有的话添加默认语言 编辑器

<c:if test="${empty sessionScope.lan}">
    <c:set var="lan" value="en_US"/>
</c:if>
而后页面总体都放在资源库标签里面


<fmt:bundle basename="${lan}">
<html>

……………………
</html>
</fmt:bundle>
而后须要显示内容的地方用这个标签


<fmt:message key="username" />
这里的key值须要在资源文件里面定义,定义的格式为


username=用户名

服务端须要将用户选择的语言存入session 工具

String lan=request.getParameter("lan");
		
request.getSession().setAttribute("lan", lan);
这样就能够根据用户须要显示不一样语言了,固然是要先准备好资源文件

三、注意 编码

资源文件使用的是properties文件,直接写入中文是不行的,须要转换为unicode的代码, spa

username=用户名
这句其实是这样的
username=\u7528\u6237\u540d
上面的是我使用propertieseditor编辑时的效果,他能够自动转换为unicode编码。

固然若是不想用这个编辑器,也能够先写成中文,而后用jdk自带的工具转换,这个能够在网上找到。

资源文件要放在类根目录哦,basename就是指的资源文件的文件名

四、总结

使用jstl标签库实现国际化很是方便,可是须要在项目开发基本完成后进行,由于须要对项目中全部须要进行国际化显示的内容进行资源配置,若是在初期就进行的话,会至关麻烦。

若有不足之处,欢迎你们进行指正。

相关文章
相关标签/搜索