jsp使用jstl标签实现国际化

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

1、准备

jstl标签库jar包

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

2、开发步骤

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

登陆页面首先判断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);
这样就可以根据用户需要显示不同语言了,当然是要先准备好资源文件

3、注意

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

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

当然如果不想用这个编辑器,也可以先写成中文,然后用jdk自带的工具转换,这个可以在网上找到。

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

4、总结

使用jstl标签库实现国际化非常方便,但是需要在项目开发基本完成后进行,因为需要对项目中所有需要进行国际化显示的内容进行资源配置,如果在初期就进行的话,会相当麻烦。

如有不足之处,欢迎大家进行指正。




转载于:https://my.oschina.net/songxinqiang/blog/192531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值