快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰8455下载app_龟发之家论坛



内容:

综述

JSP国际化的简介

若何设置设置设备摆设摆设i18n标记库

i18n标记库的各类标记和应用措施

定义LOCALE 信息

下节先容

关于作者

Also in the Java zone:

教授教化

对象与产品

代码与组件

所有文章

实用技术

翟斌(David Zhai) (zhaibin@yahoo.com)

2002 年 5 月

本文对JSP国际化的简要先容,着重探究了应用标记库对JSP进行国际化的历程,并经由过程具体的示例演示了若何应用jakarta的i18n标记库。

综述

当我们在用JSP设计面对不合国家的站点时,分外是那些在界面之间没有分外大年夜差其余商业站点,我们可以使用JSP的一些机制来支持国际化。

平日有三种要领可以实现国际化

为每个国家编写一套JSP代码, 可以经由过程嵌入BEAN和标记处置惩罚器的要领重用一些逻辑代码。

掩护统一的JSP代码,直接使用JAVA的资本绑缚机制实现国际化。

掩护统一的JSP代码,使用通用的或自定义标记库实现国际化。

我们重点评论争论第三种措施,由于它有很好的机动性,可掩护性和可扩展性。

着实标记库也是使用JAVA的资本绑缚机制, 只是把国际化常用的措施封装的更轻易应用,而且更相符JSP的编程思惟, 把表述层和逻辑层分开。通用的标记库对照闻名的有JAKARTA的I18N标记库。本文包括以下内容:

JSP国际化的简介

若何设置设置设备摆设摆设i18n标记库

具体先容i1澳门新葡亰8455下载app8n标记库的各类标记和应用措施

一个简单的例子

JSP国际化的简介

JSP的国际化的根基是JAVA的国际化,都是使用资本绑缚机制把资本与代码分离,经由过程读取响应的locale信息,自动的匹配响应的资本,并在此根基上实现文本,光阴,日期,泉币,数字等款式的国际化。关于JAVA国际化的基础观点和措施见The Java™ Tutorial Internationalization 。

但同一样平常的JAVA法度榜样的国际化的历程和详细措施照样有很多差别。主要在与locale信息的滥觞: JSP的locale信息在大年夜部分环境下来自与浏览器,而一样平常的JAVA法度榜样的locale大年夜都来自当前澳门新葡亰8455下载app的JVM。

使用JSP的标记库机制实现国际化:经由过程应用通用或用户自定澳门新葡亰8455下载app义的I18N标记库,可以有很好的机动性,可掩护性和可扩展性。但必要在办事器端设置设置设备摆设摆设标记库。

若何设置设置设备摆设摆设i18n标记库

首先必要一个支持JavaServer Pages Specification 1.1或更高版本的servlet容器,如Tomcat 4.03,然后按以下步骤设置设置设备摆设摆设你的收集办事器。

拷贝标记库的描述文件到收集办事器的/WEB-INF子目录中

拷贝标记库的JAR文件到收集办事器的/WEB-INF/lib子目录中

在/WEB-INF/web.xml文件中加入元素

;http://jakarta.apache.org/taglibs/i18n-1.0

/WEB-INF/i18n.tld

为了在你的JSP中可以应用它,在每个页面的最顶端加入

此中"i18n"是该标记的前缀,您可以起其他你爱好的名字。

i18n标记库的各类标记和应用措施

bundle

为该页的其他I18N标记建立ResourceBundle.假如没有给定locale信息,它会应用浏览器的设定。

留意:该标记必须写在该页任何HTML标记曩昔,以便根据所选择的locale信息设置Content Type。

......

表1:bundle的属性描述

属性名称 描述

id 该ResourceBundle的标识变量, 经由过程它,其他标记和代码可以造访该ResourceBundle, 当一个页面必要多个ResourceBundle时,可以用它来区分.

baseName ResourceBundle 的基础名,可以连同locale信息定位所需的ResourceBundle.

changeResponseLocale 指定是否改变相应的locale以匹配该标记所用的locale

scope 指定该标记可被造访的范围. (application, session, request, page*)

locale 用户可以指定首选的locale

localeAttribute 不同意应用

localeRef 用户可以用属性名指定首选的locale,这个属性名必须在可被造访的范围内

debug 调试开关

*page: 工具被绑定到javax.servlet.jsp.PageContent中,只在该页中可被造访

Request: 工具被绑定到javax.servlet.ServletRequest中,只要HttpRequest工具存在,就可以经由过程它造访。

Session: 工具被绑定到javax.servlet.jsp.PageContent中,并调用session的getArribute()措施来造访。

Application: 工具被绑定到javax.servlet.ServletContext中,是最持久的范围,所有客户都可以造访到。

Message

从默认或指定的ResourceBundle中读取文本并使用java.text.MessageFormat款式化显示文本

表2:Message的属性描述

属性名称 描述

id 该Message的标识变量, 经由过程它,其他标记和代码可以造访该Message

key 用它获得ResourceBundle中的显示文本

args 使用数组参数经由过程java.text.MessageFormat款式化显示文本

bundle 一个ResourceBundle的参考

bundleRef 一个代表ResourceBundle的参考的属性名

debug 调试开关

Locale

定义LOCALE 信息

JSP国际化和一样平常的JAVA利用法度榜样国际化的最紧张的差别在于Locale信息的源自浏览器, 详细的讲来自request工具.而jakarta的i18n标记库在缺省的环境下可以自动读取request工具中的Locale信息,从而简化了编程和掩护的繁杂度,当然用户也可以显式的定义Locale信息,办理特殊的显示问题。

表3:Locale的属性描述

属性名称 描述

id 该Locale的标识变量, 经由过程它,其他标记和代码可以造访该Locale

locale 用户可以指定首选的locale

localeRef 用户可以用属性名指定首选的locale,这个属性名必须在可被造访的范围内

language 用户可以指定首选的说话

country 澳门新葡亰8455下载app用户可以指定首选的国家

一个简单的例子:

i18n-test.jsp

Examples of I18N Custom Tag Library

Tag Usage

This page displays all key/澳门新葡亰8455下载appvalue pairs in the bundle.

locale =

charset =

WebApp translations

" />

i18n-test.properties

test1 = Hello world

test2 = Now you can let jsp i18n using i18n taglib!

i18n-test_zh_CN.properties

test1 = 你好天下

test2 = 现在你可以用i18n标记库国际化JSP了。

留意要把资本文件拷贝到/WEB-INF/classes子目录下

下节先容

使用I18N 标记库, 除了可以方便的对翰墨国际化外,还可以对各类款式进行国际化,如光阴,日期,泉币,数字等. 我们下次再评论争论。

关于作者

翟斌(David Zhai)卒业与北京航空航天大年夜学自动节制专业,学士学位。卒业后不停从事软件开拓事情,对收集安然,国际化/本地化有必然的钻研。现任职于北京一家开拓软件国际化对象的专业公司,从事软件国际化对象的研发。联系要领:zhaibin@yahoo.com

您可能还会对下面的文章感兴趣: