Struts 用户指南(三)

ZDNet软件频道 时间:2003-01-06 作者:李锟 译 -转自Java研究组织 |  我要评论()
本文关键词:struts
本系列文章系统的介绍了Struts 的体系结构以及Struts 组件的创建和使用。 本节介绍集中于创建应用程序中的 View 组件的任务,主要使用JSP技术建立。
3. 创建View组件

3.1 概述
这一章集中于创建应用程序中的 View 组件的任务,主要使用JSP技术建立。特别的,struts除了提供了与输入表单的交互外还提供了建立国际化应用程序的支持。几个其它的与View相关的主题也被简单地讨论。

3.2 国际化消息
几年之前,应用程序开发者能够考虑到仅仅支持他们本国的只使用一种语言(或者有时候是两种)和通常只有一种数量表现方式(例如日期、数字、货币值)的居民。然而,基于web技术的应用程序的爆炸性增长,以及将这些应用程序展开在Internet或其它被广泛访问的网络之上,已经在很多情况下使得国家的边界淡化到不可见。这种情况转变成为一种对于应用程序支持国际化(经常被称做“i18n”,因为18是字母“i”和字母“n”之间的字母个数)和本地化的需求。


struts建立于Java平台之上为建立国际化和本地化的应用程序提供帮助。需要熟悉的关键概念是:

  • Locale - 基础的支持国际化的Java类是 java.util.Locale 。每个 Locale 代表一个特别的国家和语言选择(加上一个可选的语言变量),以及一套格式假定,例如数字和日期等等。
  • ResourceBundle - java.util.ResourceBundle 类提供支持多种语言消息的基本工具。查看文档中关于ResourceBundle 类以及你的JDK版本的文档包中关于国际化的更多内容。
  • PropertyResourceBundle - 一个 ResourceBundle 类的标准实现允许你使用与初始化properties文件同样的“name=value”语法来定义资源。这对于使用为用于一个web应用程序的消息准备资源包是非常方便的,因为这些消息通常都是面向文本的。
  • MessageFormat - java.text.MessageFormat 类允许你使用运行时指定的参数替换一个消息字符串中的一部分(在这种情况下,是一个从一个资源包得到的消息)。这在你创建一个句子的场合中是有用的,但是词会以不同的语言按照不同的顺序出现。消息中的占位符字符串用第一个运行时参数替换,用第二个运行时参数替换,以此类推。
  • MessageResources - struts的类 org.apache.struts.util.MessageResources 使你能够将一套资源包视做一个数据库,并且允许你为一个特定的Locale(通常是与当前用户相对应)请求一个特定的消息,而不是为服务器运行在其中的缺省的Locale请求消息。

对于一个国际化的应用程序,遵照JDK文档包中国际化文档所描述的步骤来创建一个包含每种语言的消息的属性文件。下面举一个例子说明。

假设你的源代码建立在包 com.mycompany.mypackage 中,因此它保存于一个叫做(相对于你的源目录)com/mycompany/mypackage 的目录中。为创建一个叫做com.mycompany.mypackage.MyResources 的资源包,你应该在目录 com/mycompany/mypackage 中创建下列文件:

MyResources.properties - 包含你的服务器的缺省语言的消息。如果你的缺省语言是英语,你可能有一个这样的条目:
prompt.hello=Hello

MyResources_xx.properties - 包含ISO语言编程为“xx”(查看ResourceBundle的Java文档页面得到一个当前列表的联接)的同样的消息。对于上面的消息的法语版,你可以有这个条目:
prompt.hello=Bonjour

你可以有你需要的任意多的语言的资源包文件。

当你在web应用程序展开描述符中配置controller servlet时,你需要在一个初始化参数中定义的一件事是应用程序的资源包的基础名。在上述的情况中,这应该是com.mycompany.mypackage.MyResources 。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134