Struts1.x系列教程(13):国际化.docx
文本预览下载声明
上一篇: HYPERLINK /nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/nokiaguy/archive/2009/nokiaguy/archive/2009/02/archive/2009/nokiaguy/archive/2009/nokiaguy/archive/2009/02/archive/2009/02/archive/2009/02/14/254688.html Struts1.x系列教程(12):Validator验证框架的内置标准验证 HYPERLINK /nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/nokiaguy/archive/2009/nokiaguy/archive/2009/02/archive/2009/nokiaguy/archive/2009/nokiaguy/archive/2009/02/archive/2009/02/archive/2008/05/20/201675.html Struts2教程10:国际化??? 对于一个面向全球的Web应用程序,按着不同国家的要求显示相关信息(称为国际化)显得尤为重要。国际化的工作非常复杂和繁琐。因为要翻译很多Web界面,信息格式等。然而,Struts为我们提供了完成国际化工作的更容易的方式。在本文将介绍如何使用Struts来简化国际化的工作。
一、处理客户端界面的编码问题??? 由于Web浏览器可以使用不同的编码格式来解析客户端代码,这主要取决于用户的默认设置或偏好。由于存在这种情况,因此,在服务端向客户端发送数据时,就必须使用和客户端一致的编码格式。??? ??? 通常的做法是使用Internet上比较常用的UTF-8编码,这主要是因为UTF-8编码格式所描述的字符包括了世界上所有以知国家和地区的语言编码。这样服务端就不用根据客户端的编码格式不断地调整服务端响应信息的编码格式了。对于JSP页面来说,可以使用page指定来设置响应信息的编码格式,如下面代码所示:???
??%@?page?contentType=text/html;?charset=UTF-8?%
??? 当然,如果我们在Web程序中使用了Struts框架,还可以在struts-config.xml文件中使用如下的代码来设置编码格式:
??controller?contentType=text/html;?charset=UTF-8?/
??? 如果使用上面的设置,所有通过.do或forward元素访问的页面都会继承这一编码设置。但是如果单独访问JSP页面,就会绕过Struts的这个设置。??? 对于静态页面(如HTML)来说,需要使用meta元素来设置编码格式,如下面代码所示:???
head??? meta?http-equiv=content-type?content=text/html;?charset=UTF-8/head
??? 除了使用通用的UTF-8编码格式外,也可以从HTTP请求头字段Accept- Charset中获得客户端的编码格式。然后根据这个编码格式来设置响应信息的编码格式。然而,虽然根据HTML4.0规范,Web浏览器可以设置 Accept-Charset字段,但是有很多浏览器可以会忽略这一字段,因此,只使用这个字段来确定Web浏览器所使用的编码格式是不可靠的。所以最好的国际化编码格式解决方案仍然是UTF-8。
二、本地化属性文件
??? 本地化最重要的部分就是根据用户所处的语言环境来显示响应语言的界面,如用户在英文操作系统下,就会显示英文界面,如果在中文操作系统下,就会显示中文界面。最理想的情况是这种显示效果的切换是完全透明的。
??? 在Struts中提供了这种技术,使我们可以更容易地实现透明地界面切换。在Struts Bean标签库中有一个bean:message标签,它可以根据客户端浏览器所处的语言环境自动选择相应的属性文件来读取界面显示信息。为了演示如何使用bean:message以及不同的属性文件来实现国际化的程序。让我们先来看一个例子。
??? 在本例中,选用了三个国家的语言环境(中文、英文和法文)来演示国际化的实现。由于读者可能不便于输入法文,因此,法文信息仍然用中文代替,只是后面多了个“(法文)”作为标识。我们需要如下四步来完成这
显示全部