Faces 装入包组件

另请参见

此高级组件会创建一个定制 <f:loadBundle> 标记,用于将资源包作为 Map 公开。

可使用此标记创建可本地化的 Web 应用程序。以下样例最好地说明了其用法,该样例在 JSP 页中显示了最终结果:

您具有一个名为 com.foo.mypackage.resources 的标准资源包,并且要使用该资源包来本地化 JSP 页上的提示。以下 JSP 代码将会对消息键 my.message.key 下面的 outputText 所呈现的值执行本地语言环境查找。

   <f:view>
   ...
   <f:loadBundle basename="com.foo.mypackage.resources" var="msgs"/>
   ...
   <h:outputText value="#{msgs['my.message.key']}"/>
   ...
   </f:view>

此 JSP 代码是有效的,因为 <f:loadBundle> 合成 java.util.Map 对象以包装资源包,然后将该对象作为请求范围属性存储在 var 属性指定的键下面。因为值绑定表达式知道如何浏览 Map,所以此技术非常适于本地化字段提示等内容。

资源包和属性文件

通常,如果您希望在应用程序内提供资源包,则必须创建一个属性文件以包含消息,如创建和删除资源包中所述。

创建新的属性文件之后,该文件将在属性编辑器中打开。对于要添加的每个属性,单击“新建属性”,然后在“新建属性”对话框中输入键和值。

当您部署应用程序时,系统会自动将属性文件复制到 WEB-INF/classes/project-name 目录,以便 <f:loadBundle> 标记装入该文件。在使用包文件时,可以为 <f:loadBundle> 标记的 basename 属性指定一个值,它是项目名称(与程序包名称相同)和属性文件基本名称的组合(用句点分开)。例如,如果项目名称为 webapplication1,属性文件名称为 Bundle,则代码为:

<f:loadBundle basename= "webapplication1.Bundle " var= "var-name"/>

另请参见
关于组件

法律声明