标准的 JSF“格式化输出”组件

另请参见

可以将标准的 JavaServer Faces 格式化输出组件 “格式化输出”图标 从组件面板拖到可视设计器中,以便创建已格式化的输出文本字段。格式化输出组件提供与输出文本组件类似的功能,但添加了在呈现组件时替换本地化参数的功能。与输出文本一样,格式化输出也呈现为 HTML <span> 标记。

此组件是一个高级组件,因为它需要直接编辑 JSP 代码并了解资源包。您可以在此组件的“属性”窗口中编辑其属性,并使用以下方法将其绑定到数据提供器:在可视设计器中右键单击此组件,然后选择“绑定到数据”选项。

下面简要说明了如何使用此组件:

在页面的“源”视图中,格式化输出组件是 JavaServer Faces 组件标记 <h:outputFormat>,它将其值视为 java.text.MessageFormat 对象的输入。此外,也可以将 <f:param> 标记嵌套在 <h:outputFormat> 标记内,以指定参数 {0}{1} 等的替换项。

有关有效消息语法的详细信息,请参见以下网址的 java.text.MessageFormat 的 Javadoc 页:

有关本地化和资源包的信息,请参见有关本地化的 部分。

简单示例

虽然可以将此示例与 <f:loadBundle> 结合使用以获取消息字符串,但您不必使用资源包就可使用格式化输出组件。

以下示例假定您已在名为 count 的会话 Bean 中创建了整型属性,此会话 Bean 用于提取用户购物车中的物品数(有关详细信息,请参见“导航”窗口中的会话 Bean 描述)。格式化输出组件显示购物车中的物品数。

   <h:outputFormat binding="#{Page1.formattedOutput1}" 
                   id="formattedOutput1" 
                   style="left: 216px; top: 360px; position: absolute"
                   value="You have {0} items in your shopping cart.">
      <f:param value="#{SessionBean1.count}"/>
   </h:outputFormat>

资源包样例

如果已将上一样例中的字符串放在键 itemCount 下面的资源包中,则可以使用以下代码:

   <f:loadBundle basename="webapplication1.Bundle"
                 var="messages"/>
   ...
   <h:outputFormat binding="#{Page1.formattedOutput1}" 
                   id="formattedOutput1" 
                   style="left: 216px; top: 360px; position: absolute"
                   value="#{messages.itemCount}">
      <f:param value="#{SessionBean1.count}"/>
   </h:outputFormat>

要使此样例中的代码正常工作,或者对于要在应用程序内提供资源包的任何其他情况,您必须创建一个属性文件来包含这些消息,如创建和删除资源包中所述。

创建新的属性文件之后,该文件将在属性编辑器中打开。对于要添加的每个属性,单击“新建属性”,然后在“新建属性”对话框中输入键和值。例如,上一示例的属性具有名为 itemCount 的键,并且文本为:"You have {0} items in your shopping cart."

当您部署应用程序时,系统会自动将属性文件复制到 WEB-INF/classes/project-name 目录,以便 <f:loadBundle> 标记装入该文件。有关详细信息,请参见装入包组件

另请参见
使用组件
组件任务:快速参考
关于 Visual Web 组件面板

法律声明