北方站长站
客服热线:0632-5117766

Java EE的国际化解决方案

[2007-12-12 00:00:00] 作者:Northz.com 来源:北方站长站

Tags:解决方案 国际化 编码 UTF-8 代码 资源 语言 jsp 可以

  

当某个企业应用需要面对不同国家或地区的用户时,就必须考虑国际化问题。最终效果就是让不同国家的用户在界面上看到的文字内容是自己的语言,并且可以选择其他语言来显示。对于Java EE应用程序开发者来说,其主要工作包括提示信息国际化、编码国际化两个方面。QNT北方站长站

1、提示信息国际化QNT北方站长站

这部分工作主要就是把程序中字符串常量提取到统一的资源信息文件中。针对不同的程序代码,又有不同的处理方式。QNT北方站长站

1.1、 java code的处理QNT北方站长站

首先需提供一个公共国际化资源接口类,server启动时会根据具体环境加载不同的资源。假设国际化资源类为Message,接口为getString(String key),那么java code的形式变化如下:QNT北方站长站

原代码:QNT北方站长站

String strLabel = “业务逻辑”; 
QNT北方站长站

新代码:QNT北方站长站

String strLabel = Message.getString(“BIZ_NAME”);QNT北方站长站
资源文件(message_zh_CN.properties)内容:QNT北方站长站
BIZ_NAME=业务逻辑
QNT北方站长站

(1)jsp代码的处理QNT北方站长站

1)html部分QNT北方站长站

页面中表单的提示信息和表格标题等内容,一般都是直接写在html代码中。根据jsp规范,此时做国际化有两种途径。第一种是直接利用<%=%>调java表达式来输出国际化信息,第二种是通过自定义标签来输出。例如:QNT北方站长站

原代码:QNT北方站长站

<table> QNT北方站长站
<tr> QNT北方站长站
<td>客户姓名 QNT北方站长站
</td> QNT北方站长站
<td><input type=”text” name=”cust_name”> QNT北方站长站
</td> QNT北方站长站
</tr> QNT北方站长站
</table> 
QNT北方站长站

第一种实现:QNT北方站长站

<table> QNT北方站长站
<tr> QNT北方站长站
<td><%=WebPageMessage.getString(“CUST_NAME”)%> QNT北方站长站
</td> QNT北方站长站
<td><input type=”text” name=”cust_name”> QNT北方站长站
</td> QNT北方站长站
</tr> QNT北方站长站
</table>
QNT北方站长站

第二种实现:QNT北方站长站

<table> QNT北方站长站
<tr> QNT北方站长站
<td><i18n:message key=”CUST_NAME”/> QNT北方站长站
</td> QNT北方站长站
<td><input type=”text” name=”cust_name”> QNT北方站长站
</td> QNT北方站长站
</tr> QNT北方站长站
</table>  
QNT北方站长站

资源文件(message_zh_CN.properties)内容:QNT北方站长站

CUST_NAME=客户姓名 QNT北方站长站

2)jsp tag部分QNT北方站长站

有时候,jsp tag的属性值也是和具体语言相关的字符串,此时需要该属性支持java expression。如不支持,可修改<rtexprvalue>false</rtexprvalue>为<rtexprvalue>true</rtexprvalue>。例如:QNT北方站长站

原代码:QNT北方站长站

<dict:select businessType=”SEX” nullLabel=”未知”/>
QNT北方站长站

新代码:QNT北方站长站

<dict:select businessType=”SEX” nullLabel=”<%=WebPageMessage.getString(“NULL”)%>”/>QNT北方站长站
资源文件(message_zh_CN.properties)内容:QNT北方站长站
NULL=未知 
QNT北方站长站

(2)js、css、image部分QNT北方站长站

对于这三种元素,需要根据不同的语言环境加载不同的资源文件。我们可以在jsp对应的目录下建立一个resources目录,然后在下面按地区语言名建立文件夹本,分别保存前语言对应的js,css,image资源。为了实现此目的,可以把以前html的引用方式,改成jsp tag来引用原资源文件。例如:QNT北方站长站

Html引用:QNT北方站长站

<SCRIPT SRC="/resources/scripts/message.js" LANGUAGE="javascript"></SCRIPT> QNT北方站长站
<LINK HREF="/resources /css/style.css" REL="stylesheet" TYPE="text/css"/> QNT北方站长站
<IMG SRC="/resources/images/title.gif" WIDTH="300" HEIGHT="120" BORDER="0" ALT="title">
QNT北方站长站

Jsp tag引用:QNT北方站长站

<i18n:javascript src="/resources/scripts/message.js"/> QNT北方站长站
<i18n:css href="/resources/css/style.css"/> QNT北方站长站
<i18n:image src="/resources/images/title.gif" width="300" height="120" border="0" alt="title"/>
QNT北方站长站

QNT北方站长站

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

1 2 下一页

下一篇链接:简介Java Server Faces

上一篇链接:JBuilder+WebLogic实现教材管理系统

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面