其他详细信息:
对于动态值,选项列表是由一个或多个 selectitem 或 selectitems 标记产生的。selectitems 标记的
value 属性指向包含选项的数据元素。selectitems 标记期望下列其中一种格式的数据:
- javax.faces.component.SelectItem 成员对象的 java.util.Collection。SelectItem 类定义拥有标签、值和单独选项的描述的简单容器。
- 数组 javax.faces.component.SelectItem
对于任何其他数据类型,工具将生成
value 来将数据转换为这些期望的格式的其中一种。
value 将具有格式
selectitems.bean.label.value.toArray,其中:
- selectitems 是标识此转换情况的特殊关键字
- bean 标识数据模型中与 JavaBean 相似的内容。它可以是多级引用,例如 aaa.bbb.ccc,并且可以对任何“对象”(包括“集合”类型)进行解析。
- label 是由 bean 标识的对象的属性。此属性的值就是显示为选项的内容。
- value 是 bean 的另一个属性并且是用选择的选项设置的。缺省情况下,它与 label 相同。
- toArray 是用来终止特殊引用字符串的关键字。
当从“页数据”视图绑定时,选择单独字段将始终创建使用标签和值的相同字段的
value。要将不同的字符串用于用户界面标签和已传递的值,请根据上面的模式手工修改
value。
selectitems 标记的
value 属性的示例为:
- myBean.choices 从称为 myBean 的 bean 绑定 SelectItem[] 属性 choices。
- selectitems.EMPLOYEES.NAME.NAME.toArray 从称为 EMPLOYEES 的“数据列表”绑定“字符串”属性 NAME。
- selectitems.anotherBean.choices.choices.toArray 从称为 anotherBean 的 JavaBean 绑定称为 choices 的“字符串”数组。
- selectitems.EMPLOYEE.NAME.EMPID.toArray 通过使用选择的值的职员标识从称为 EMPLOYEES 的“记录列表”手工绑定职员名称。