利用jstl标签实现国际化

  为了实现国际化,我们在jsp中所用到的标签等应该避免使用硬编码,而应该使用资源文件中的key来代替,以动态的呈现不同的语言。运用jstl实现国际化有一下步骤:

  • 编写中英文资源文件
  • 我们编写两个资源文件globalMessages_en_US.properties和globalMessages_zh_CN.properties
    • 英文资源文件(globalMessages_en_US.propertie)内容:id=ID
      name=Your Name中文资源文件内容:id=用户IDname=用户名
  • 为防止中文乱码,将中文资源文件转换成unicode编码
    • id=\u7528\u6237ID
      name=\u7528\u6237\u540D
      由于中文资源文件中出现非西欧字符,必须把中文字符转换成unicde编码,转码方法为,在dos下切换目录到JDK安装的bin目录下,并将globalMessages_zh_CN.properties复制到bin目录下,输入下来命令:native2ascii globalMessages_zh_CN.properties(源文件名) globalMessages_zh_CN.properties(转换后名称)
  • jsp中利用jstl标签引用资源文件,同时给该项目导入jstl.jar和standard.jar这两个jar包,在jsp页面中引入下面连个库文件 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
....
<body> <!-- <fmt:setLocale value="${param.setLocale}"/> 区域语言的值从传过来的参数中得到 --> <fmt:setLocale value="en_US"/> <!--指定区域语言--> <fmt:bundle basename="globalMessages"> <!-- 指定使用basename为globalMessages的资源文件,也即资源文件第一个单词为globalMessages--> <center> <table> <tr> <td><fmt:message key="email"/></td> <td><input type="text" name="email"></td> </tr> </table> </center> </fmt:bundle> </body>

 

原文地址:https://www.cnblogs.com/yueliming/p/3094860.html