在JSF中,selectitem和selectitems标签有什么区别?
selectitem
标签添加一个 HTML 列表中的单个项目,而 selectitems
标签则添加多个项目。根据 JSF Core Tag Reference,SelectItem
标签会向与封闭标签相关联的组件中添加一个子 UISelectItem
组件。在 HTML 渲染工具包中,它创建一个单独的元素。这个标签的主体内容必须为空。可以将其与 JSF HTML 标签库中的任何选择标签一起使用。<h:selectOneMenu id="list1">
<f:selectItem itemLabel="Option 1" itemValue="1"></f:selectItem>
</h:selectOneMenu>
HTML 输出:
<select id="list1" name="list1" size="1">
<option value="1">Option 1</option>
</select>
SelectItems
标签会在与封闭标签相关联的组件中添加一个子UISelectItems
组件。您可以使用此标签将域模型中的对象列表设置为选择组件的选项。该标签的主体内容必须为空。
示例:
<h:selectManyListbox id="list">
<f:selectItems value="#{optionBean.optionList}"></f:selectItem>
</h:selectManyListbox>
HTML 输出:
<select id="list" name="list" multiple="true" size="-2147483648">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
还有一点需要记住,f:selectItems 可以指向 SelectItem、SelectItem 对象的数组或集合,或将标签映射到值的 Map。