WEB开发网
开发学院软件开发Java 使用 IBM Rational Application Developer 轻松实... 阅读

使用 IBM Rational Application Developer 轻松实现 JavaServer Faces Web 程序的全球化

 2009-10-08 00:00:00 来源:WEB开发网   
核心提示: 到目前为止,我们已经介绍了 JWLhxclient 脚本是怎样帮助您处理客户端的数字分析和格式问题,使用 IBM Rational Application Developer 轻松实现 JavaServer Faces Web 程序的全球化(10),在例子中的代码中,我们总是需要得到服务器端的场

到目前为止,我们已经介绍了 JWLhxclient 脚本是怎样帮助您处理客户端的数字分析和格式问题。在例子中的代码中,我们总是需要得到服务器端的场所信息,以生成格式模式。因此,在接下来的章节中,我们将会讨论更高级的话题,就是场所信息是怎样传递的,以及在 JSF 网络程序中是怎样使用这些信息的。

在多线程 JSF 程序中全球化道路的风险

使用 JSF 进行全球化很容易,但是并不是极简单的。特别是在多线程的程序中,如果设计缺乏完善的考虑,错误的假设将会使得您的全球化支持,变得更像是应用一系列的补丁。接下来我们将要介绍的技术,将会使得您的多线程 JSF 程序变得更加强壮。

决定显示的语言

全球化通常构建于场所的基础之上。因此,怎样实现全球化归根结底就是怎样处理场所。在获取场所信息之后,您已经可以决定基于场所用户界面中显示的语言。在大多数情况下,JSF 框架会关注带有 <loadBundle> 标签的语言包,它根据场所请求获取包,而不需要额外的编码。但是如果您需要使用 Java 代码中的语言包内容,那么您就需要使用场所信息来获取包的路径,然后自己格式化信息。列表 10 给出了范例代码。

列表 10. 一个简单的信息格式化范例

public class MessageFormatter { 
private static final String MESSAGE_BUNDLE_NAME = "com.ibm.sample.messages"; 
 
private static String formatMessage(String msgKey, Object[] args,Locale locale) { 
  ResourceBundle messageBundle = ResourceBundle.getBundle(MESSAGE_BUNDLE_NAME,locale); 
  String message = messageBundle.getString(msgKey); 
  if (message != null) { 
    if (args == null) { 
      return message; 
    } else { 
      return MessageFormat.format(message, args); 
    } 
  } else { 
    return msgKey; 
  } 
} 
} 

上一页  5 6 7 8 9 10 

Tags:使用 IBM Rational

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接