Struts2.0 (开发之四)--(i18n)国际化--CTO

在前面讲过的Struts2校验框架时我们有讲到过 Struts2 的国际化,就是最后的代码清单五提到过的,在Struts2 的一个应用里怎样实现国际化 如何实现呢!首先我们知道在Struts1.x 的国际化已经做得非常好,它简化了开发人员在做国际化时所需的工作量,比如我们要输出一条国际化的信息,只要在工程的Struts目录中加入messages_zh_CN.properties,然后在struts-config.xml中指明其路径与messages,在jsp页面可以通过<bean:message key=""/> 标签输出便可, 那么在Struts2 中作了更大的改进,比Struts1.x 更灵活,也更的强大,

首先我们来理解一下什么是国际化,国际化就是根据不同的国家来显示不同的语言,这时 i18N出来了,i18N代表着国际化,它的全写是 internationalization , 总共由20个字母组成,为了方便,取出第一个和最后一个字母,中间还有18个字母用数字18代表,就是我们常说的i18N了,那么以后大家在见到i18N是就知道是国际化的意思,在Struts2 中实现国际化与Struts1.x 其实是一样,首先我们在 classpath 目录下建立一个 messages.properties 文件,文件内容请看清单一: message.properties

com.userName=用户名
com.password=密码
在 java 中这样输出是会出现乱码的,这时因为java默认都是以 Unicode 的编码,我们在使用时需要将
Unicode重新编码,而我们计算机都是 UTF-8或GBK编码,这个时候我们就要将系统的编码方式转换为
java正确识别的编码格式,这个时候我们就需要一个转换器来解决,那就是 native2ascii,
native2ascii是SUN JAVA JDK提供的一个编码工具,用来将文本文件转换为Unicode编码,
如(*.properties,*.txt,*.java等),为什么要进行转码,原因在于程序需要国际化.
Unicode编码的定义是:Unicode(统一码、万国码、单一码)它是一种在计算机上使用的字符
编码.它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进
行文本转换、处理的要求.
那么如何得到native2ascii 呢!怎样来转换我们的文本文件呢!其实有二种方式可以实现
一.在安装好 jdk 后,在jdk的安装路径有个bin目录,该目录下包含一个native2ascii.exe
就是了,在使用时只要运行该exe文件,能后次需要转换的内容复制到当中,按enter就可看到转
换后的 Unicode 了.
二.首先找到需要转换文件的目录,将其复制下来,在运行中输入 cmd ,cd 到复制的目录,能后输
入 native2ascii messages.properties messages_zh_CN.properties 这个时候我们
发现在目标目录下多出了一个文件,这个文件就是我们需要的实现国际化的文件,将这个文件放
入到工程的src目录下,这个在编辑后会放到WEB-INF/classes目录下,
我们再添加一个 messages_en_US.properties 文件,内容如清单二:
清单二:message_en_US.properties 
com.userName=userName
com.password=password
这个文件同样放入到工程目录的src 下,当写好这二个文件后还需要添加另一个文件
struts.properties ,struts2支持在JSP页面中临时加载资源文件,也支持通过全局属性
来加载资源文件,全局属性加载资源文件就是通过 struts.properties 文件来完成,该文
件需加入一行代码如清单三:
清单三:struts.properties
struts.custom.i18n.resources=messages
messages 是指明资源配置文件的 baseName为messages,该文件同样是保存在工程目录的
src 目录下,struts2默认会加载该路径下的资源文件,如果想将该文件保存在 classpath 
的子目录中,那就需要修改struts.properties 内容,如清单四:
清单四:struts.properties
struts.custom.i18n.resources=子目录.messages
在JSP页面输出时我们用Struts2标签,有二种方式来显示,如以下清单五:
清单五:login.jsp
    
    

<%@page  contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
   
<title>login</title>
</head>
<body>
    <!--
<s:text name="userName"/>
   
<s:property value="%{getText('userName')}"/>-->
	<s:textfield name="name" label="%{getText('userName')}"/>
	<s:textfield name="pwd" label="%{getText('password')}"/>

</body>
</html>
这样我们将浏览器的语言设为中文时显示中文,设为英文时显示英文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值