通过 HTTP 加载 Java 资源包
2009-12-24 00:00:00 来源:WEB开发网从一个消息键和基础资源包名称中创建一个 URL
您如何知道哪个 Web 应用程序包含针对特定消息键的资源包?清单 2 中的示例代码执行一个简单的模式,用于构建从 Web 应用程序检索资源包所需的 URL。这个模式是:
消息键包含产品标识符
消息键在其名称的第一部分包含了一个产品标识符。例如:autoparts.parts.received。在这个消息键中,autoparts 就是包含了资源包的 Web 应用程序。
基本资源包名称包括一个固定的字符串和一个产品标识符
所有样例资源包的名称都使用相同的基本字符串:remote.bundle.example
当 MessagesBean 调用 ResourceBundle.getBundle() 时,它将传递这个固定的字符串,后面附加了来自消息键的产品标识符,例如:
remote.bundle.example.autoparts
这个字符串也被看作是 ResourceBundle.getBundle() 的 baseName 参数。
产品上下文根
一个名为 productContextRoots.properties 的属性文件包含了 Web 应用程序的上下文根,而该应用程序包含将被加载的资源包。属性文件的内容是:
autoparts = /AutoParts/
autosales = /AutoSales/
第一次调用时,方法 RemoteResourceBundleLoader.newBundle() 将读取这个属性文件。
把资源包 baseName 映射到产品上下文根中
当调用方法 RemoteResourceBundleLoader.newBundle() 以加载一个新的资源包时,它将获取 baseName 参数的最后一部分并使用它作为消息键,在资源包所在的 Web 应用程序中查找上下文根。
例如,资源包 baseName 的最后部分:
remote.bundle.example.autoparts
会被用来在 productContextRoots.properties 中为 autoparts Web 应用程序查找上下文根。在这个例子中,上下文根是:
更多精彩
赞助商链接