WEB开发网
开发学院软件开发Java 通过 HTTP 加载 Java 资源包 阅读

通过 HTTP 加载 Java 资源包

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 请求 RemoteBundleDisplay.jsp,它把类 MessagesBean 实例化并访问名为 messagesMap 的 MessageBean 属性,通过 HTTP 加载 Java 资源包(4),而这将为 JSP 返回格式化的消息以进行显示,MessagesBean 的方法 get

请求 RemoteBundleDisplay.jsp。它把类 MessagesBean 实例化并访问名为 messagesMap 的 MessageBean 属性,而这将为 JSP 返回格式化的消息以进行显示。

MessagesBean 的方法 getMessagesMap() 遍历一些硬编码的消息键,而且对每个键都调用私有方法 getString()。

MessagesBean 的 getString() 方法调用静态的 Java 方法 ResourceBundle.getBundle(),以便为当前的消息键检索资源包。ResourceBundle.getBundle() 的其中一个参数是示例类 RemoteResourceBundleLoader 的实例,它扩展 Java 类 ResourceBundle.Control 并实现方法 newBundle()。

RemoteResourceBundleLoader.newBundle() 创建一个 HttpURLConnection,用于从 Web 应用程序中提取所需的资源包。定位资源包后,它被加载到名为 MessagesBundle 的示例类的新实例中。RemoteResourceBundleLoader 返回 MessagesBundle 实例。(如果资源包是由前面的 ResourceBundle.getBundle() 调用检索,Java ResourceBundle 类将返回一个资源包的缓存版本。)

MessagesBean 的 getString() 方法使用 MessagesBundle 实例检索正在处理的消息键的字符串。MessagesBean 格式化字符串并且把它储存在一个映射中,当所有的消息都检索完毕时,这个映射会被返回到 JSP。

JSP 显示格式化的消息。

如何通过 HTTP 加载资源包

关键在于 Java class ResourceBundle.Control。在 Java SE 6 中引入了类 java.util.ResourceBundle.Control。Control 类使您能够比以往任何 Java 版本都能够更好地控制资源包加载。

请看一下示例类 RemoteResourceBundleLoader。您可以在 remote.bundle.example 包(清单 1)中可下载的 sj_Source.zip 文件中找到它。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:通过 HTTP 加载

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